AWS Boto3 SQS MessageBody 与 MessageAttributes
AWS Boto3 SQS MessageBody vs MessageAttributes
我正在设置一个 SQS 队列来摄取要由后端容器处理的配置数据块。我的第一个想法是 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 消息的 "outside",而无需修改(甚至不必理解) ) 你要放什么 "inside" 消息(正文)。
如果有问题的信息 是 邮件的一部分,它可能应该放在正文中。另一方面,如果它是 about 消息,您可能希望将其作为元数据附加。
对于您描述的情况,请在邮件正文中添加 JSON。
我正在设置一个 SQS 队列来摄取要由后端容器处理的配置数据块。我的第一个想法是 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 消息的 "outside",而无需修改(甚至不必理解) ) 你要放什么 "inside" 消息(正文)。
如果有问题的信息 是 邮件的一部分,它可能应该放在正文中。另一方面,如果它是 about 消息,您可能希望将其作为元数据附加。
对于您描述的情况,请在邮件正文中添加 JSON。