2017-02-23 13 views
0

https://github.com/boto/boto3/issues/997boto3 SQS MESSAGE_IDメッセージId

対私はmessage.message_idbody['MessageId']異なっていることがわかり?両者の違いは何ですか?

sqs = boto3.resource('sqs', region_name=region, aws_access_key_id=aws_access_key_id, aws_secret_access_key=aws_secret_access_key) 
queue_obj = sqs.Queue(queue_url) 
messages = queue_obj.receive_messages(
      AttributeNames=['All'], 
      MessageAttributeNames=['All'], 
      VisibilityTimeout=15, 
      WaitTimeSeconds=20, 
      MaxNumberOfMessages=5 
) 
for message in messages: 
    body = json.loads(message.body) 
    print(str(message.message_id) == str(body['MessageId'])) # This prints False all the time 

答えて

0

message.message_idはboto3 documentationに示すように、SQSがメッセージに割り当てるIDに相当します。

message.bodyについては、値はメッセージの送信者が本文に設定されているものであれば何でも構いません。したがって、bodyにあるMessageIdの存在と価値は、メッセージの送信者も原因でした。

+0

ありがとうございました。どのIDがキュー内で一意になるのか知りたいですか?私はIDでメッセージをキーとして保存したい – abarik

関連する問題