1
我正在嘗試從Kinesis流讀取。如果我使用ShardIteratorType
AT_SEQUENCE_NUMBER
或LATEST
,它工作正常。但是,如果我嘗試使用AT_TIMESTAMP
類型,並設置一個TIMESTAMP
,boto3抱怨:Boto3從Kinesis流中讀取時間戳
File "/usr/local/lib/python2.7/site-packages/botocore/validate.py", line 269, in serialize_to_request
raise ParamValidationError(report=report.generate_report())
botocore.exceptions.ParamValidationError: Parameter validation failed:
Unknown parameter in input: "Timestamp", must be one of: StreamName, ShardId, ShardIteratorType, StartingSequenceNumber
的代碼,以獲得shard_id
如下。
import boto3
from datetime import datetime
client = boto3.client('kinesis')
shard_it = client.get_shard_iterator(
StreamName='foo',
ShardId='shardId-000000000000',
ShardIteratorType='AT_TIMESTAMP',
Timestamp=datetime(2015, 1, 1)
)
有沒有人有過這方面的經驗?
根據API docs該參數存在。
關於第二個想法,你的boto3不似乎是最新的。請運行$ sudo pip install -U boto3。 – quiver
謝謝@quiver!原因是我的'boto3'版本過時了。我通過的時間戳是有效的。隨意編輯您的答案,我會接受它。 – ustroetz
@ ustroetz更新了答案!很高興你做到了。 – quiver