2017-02-23 27 views
0

https://github.com/boto/boto3/issues/997boto3 SQS MESSAGE_ID VS的MessageId

我看到message.message_id不同于body['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