【问题标题】:How to read body of the sqs message on AWS如何在 AWS 上读取 sqs 消息的正文
【发布时间】:2021-08-19 20:36:16
【问题描述】:

我正在用 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格式?

谢谢,

【问题讨论】:

  • "message.body" 是解决方案!

标签: json amazon-web-services amazon-sqs


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-27
    • 2019-11-07
    • 2019-11-11
    • 2021-08-10
    • 2018-06-15
    • 2021-03-30
    • 2021-10-11
    • 1970-01-01
    相关资源
    最近更新 更多