python - AWS Boto3 SQS MessageBody 与 MessageAttributes

标签 python amazon-web-services boto3

我正在设置一个 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/

相关文章:

python - 如何对包含数组的列求和

python - 从大文档中提取电子邮件子字符串

ruby-on-rails - rails "no such file to load -- rubygems (LoadError)"

ios - AWS iOS SDK v2 文件上传到 S3 问题

php - AWS Elastic Beanstalk for PHP 通过 CLI 上传 ZIP off 应用程序

python - 使用 boto3.resource.put_object() 和 boto3.s3.transfer.upload_file() 将文件上传到 S3 有什么区别

python - 为什么来自同一个 sqlalchemy 引擎的多个连接会产生不同的信息?

python - 修复错误 ResolvePackageNotFound : 时遇到问题

python - S3 批量数据更新

amazon-dynamodb - 在 dynamoDB 中更新或创建嵌套元素