AWS Boto3 SQS MessageBody vs MessageAttributes

AWS Boto3 SQS MessageBody vs MessageAttributes

问题描述:

我正在设置一个SQS队列来获取要由后端容器处理的配置数据块。我的第一个想法是json.dumps字典与配置信息,并通过sqsclient.send_message()参数MessageBody传递它。然而,通过阅读文档后,我看到有一个MessageAttributes参数,似乎我可以相对容易地传递键值对(Docs for sqsclient.sendmessage()AWS Boto3 SQS MessageBody vs MessageAttributes

我很不确定这种差异,如果有任何好处使用一个在另一个之上。作为参考,我正在一个EC2实例中的容器上运行的python脚本中插入队列。

+0

我会从阅读这里的文档开始:http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/SQSMessageAttributes.html具体说明是每个消息只能有10个消息属性。 –

+0

@MarkB所以如果我理解正确,好处是数据类型验证? – asdf

所以,如果我理解正确,好处是数据类型验证?

的好处是,所述元数据本质上是外的带:可以附加元数据 - 信息有关的有效载荷 - 到一个SQS消息的“外部”,而无需修改(或者甚至必然理解)你将要在信息(身体)内“放置”的内容。

如果有问题的信息消息的一部分,则应该将其放入正文中。另一方面,如果该消息是,则可能需要将其作为元数据附加。

对于您描述的情况,请在消息正文中使用JSON。