2013-12-19 1 views
0

다음 예제에서는 데이터를 삽입 할 때 반환 된 시퀀스 번호를 이미 알고있는 경우 레코드를 반환 할 수 있습니다. 하지만 다른 기기에서 추가 한 모든 데이터를 어떻게 반환합니까? 당신의 프로듀서메서드가 최신 레코드를 반환하지 않습니다.

import boto 
mykin = boto.connect_kinesis(aws_access_key_id='access_key', 
          aws_secret_access_key='secret_key') 
myput = mykin.put_record(stream_name='mytest', data='abcdefghij', 
         partition_key='parti11', b64_encode=True) 
myiterator = mykin.get_shard_iterator(stream_name='mytest', 
             shard_id='shardId-000000000000', 
             shard_iterator_type='AT_SEQUENCE_NUMBER', 
             starting_sequence_number= 
             myput['SequenceNumber']) 
mykin.get_records(shard_iterator=myiterator['ShardIterator']) 
+0

당신은 이것에 대한 해결책을 찾았나요? – aliirz

답변

1

는 :

kinesis = boto.kinesis.connect_to_region('us-east-1', aws_access_key_id, aws_secret_access_key) 
response = kinesis.describe_stream('stream_name') 
shard_id = response['StreamDescription']['Shards'][0]['ShardId'] 
response = kinesis.get_shard_iterator('stream_name', shard_id, 'TRIM_HORIZON')