我正在设置一个 SQS 队列,以摄取要由后端容器处理的配置数据 block 。我的第一个想法是 json.dumps
带有配置信息的字典,并通过 sqsclient.send_message()
的 MessageBody
参数传递它。但是,在阅读完文档后,我看到还有一个 MessageAttributes
参数,似乎我可以相对轻松地将键值对传递给 ( Docs for sqsclient.sendmessage())
我不太确定其中的区别,也不确定使用其中一个是否比另一个有任何好处。作为引用,我在 EC2 实例中的容器上运行的 python 脚本中摄取队列。
最佳答案
So if I understand correctly, the benefit is data type validation?
没有。
好处是元数据本质上是带外的:您可以将元数据(有关负载的信息)附加到 SQS 消息的“外部”,而无需修改(甚至不必理解)您的内容我们将把消息(正文)“放入”。
如果相关信息是消息的一部分,它应该放在正文中。另一方面,如果它是关于的消息,您可能希望将其作为元数据附加。
对于您描述的情况,请在消息正文中使用 JSON。
关于python - AWS Boto3 SQS MessageBody 与 MessageAttributes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38963001/