繁体   English   中英

如何在 AWS 上读取 sqs 消息的正文

[英]How to read body of the sqs message on AWS

我正在 python 中编写一个脚本来接收 Amazon SQS 消息。

在 Amazon SQS 队列中,我有这样的消息

'{"Test":"Machine-name", "State":"Request", "Description":""}'

在 python 脚本中我可以收到这条消息; 但是,它抱怨如下:

msg = json.loads(message)
  File "/usr/lib/python3.8/json/__init__.py", line 341, in loads
    raise TypeError(f'the JSON object must be str, bytes or bytearray, '
TypeError: the JSON object must be str, bytes or bytearray, not sqs.Message

我相信我插入队列的消息是 json 格式,但为什么它识别为 sqs.Message?

如何转换为 json 格式?

谢谢,

当您通过 Boto3(Python AWS SDK)读取 SQS 消息(或者更确切地说是 SQS 消息列表)时,您不会直接获得单个消息的有效负载正文,而是包含消息列表的字典,其中每条消息都包含其他消息MessageId 等属性。

作为消息的一部分(在消息列表中),您具有Body属性,这正是您想要的。

请参阅: https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sqs.html#SQS.Client.receive_message

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM