Kinesis python客户端删除任何带有“的消息”\x";逃跑

Kinesis python客户端删除任何带有“的消息”\x";逃跑,python,python-2.7,protocol-buffers,boto3,amazon-kinesis,Python,Python 2.7,Protocol Buffers,Boto3,Amazon Kinesis,我正在使用boto3(版本1.4.4)与亚马逊的Kinesis API对话: import boto3 kinesis = boto3.client('kinesis') # write a record with data '\x08' to the test stream response = kinesis.put_record(StreamName='test', Data=b'\x08', PartitionKey='foobar') print(response['Response

我正在使用boto3(版本1.4.4)与亚马逊的Kinesis API对话:

import boto3
kinesis = boto3.client('kinesis')

# write a record with data '\x08' to the test stream
response = kinesis.put_record(StreamName='test', Data=b'\x08', PartitionKey='foobar')
print(response['ResponseMetadata']['HTTPStatusCode']) # 200

# now read from the test stream
shard_it = kinesis.get_shard_iterator(StreamName="test", ShardId='shardId-000000000000', ShardIteratorType="LATEST")["ShardIterator"]
response = kinesis.get_records(ShardIterator=shard_it, Limit=10)
print(response['ResponseMetadata']['HTTPStatusCode']) # 200
print(response['Records']) # []
当我使用任何没有
\x
转义的数据测试它时,我能够按预期返回记录。表示“数据blob可以是任何类型的数据;例如,日志文件中的一段、地理/位置数据、网站clickstream数据等。”那么为什么会删除带有转义字符的消息?在将数据发送到kinesis之前,我是否需要编码('string_escape')


如果您感兴趣,我在消息数据中有类似于
\x08
的字符,因为我正在尝试将序列化协议缓冲区消息写入一个运动流。

好的,所以我终于找到了答案。它不起作用的原因是因为我的botocore版本是
1.4.62
。我之所以意识到这一点,是因为另一个在我同事的机器上运行良好的脚本在我的机器上抛出异常。我们有相同的boto3版本,但不同的botocore版本。在I
pip安装botocore==1.5.26之后,另一个脚本和我的动作
put\u记录开始工作


tldr:
botocore 1.4.62
在许多方面都严重损坏,因此现在升级。我真不敢相信我的生命有多少被过时的破图书馆浪费了。我想知道AmazonDev是否可以取消发布该客户端的损坏版本?

好的,所以我终于找到了答案。它不起作用的原因是因为我的botocore版本是
1.4.62
。我之所以意识到这一点,是因为另一个在我同事的机器上运行良好的脚本在我的机器上抛出异常。我们有相同的boto3版本,但不同的botocore版本。在I
pip安装botocore==1.5.26之后,另一个脚本和我的动作
put\u记录开始工作


tldr:
botocore 1.4.62
在许多方面都严重损坏,因此现在升级。我真不敢相信我的生命有多少被过时的破图书馆浪费了。我想知道Amazon dev是否可以取消发布客户端的损坏版本?

你是说你的Lambda函数从未收到包含二进制数据的消息吗?@garnaat我没有使用任何Lambda函数,我只是在写入流后使用python kinesis客户端读取流。我的意思是,尽管消息写入看起来很成功,但当我从流中读取时,无论写入后等待多长时间,都没有记录。虽然我在写了一条消息后,能够在没有转义的情况下读取记录。你是说你的Lambda函数从未收到包含二进制数据的消息吗?@garnaat我没有使用任何Lambda函数,我只是在写入流后使用python kinesis客户机读取流。我的意思是,尽管消息写入看起来很成功,但当我从流中读取时,无论写入后等待多长时间,都没有记录。尽管我在写了一条消息后没有退出退出,我还是能够读取记录。