使用 AWS EB Worker 时自定义 headers

Custom headers when using AWS EB Worker

我计划将我的 nodejs 应用程序部署为 EB 中的网络服务器 + 工作程序组合。网络服务器会将 json(在请求 body 中)插入到 SQS queue 中。工人然后阅读 queue 并做一些工作。

问题是我的工人也需要 headers。有什么方法可以将 headers 设置为请求,以便我可以在 worker 中使用它?

是的,您可以设置 json body 以及消息属性。我已经验证了这一点。这是我从 EB 上的 SQS 守护程序收到的 headers 的日志(我的自定义字段是 "abc" 和 "def"):

2017-09-10 16:19:53,689; INFO    ; headers received:
X-Aws-Sqsd-Attr-Abc: 205
X-Aws-Sqsd-Attr-Def: 2017-09-10T16:19:53.537679+00:00
X-Aws-Sqsd-Msgid: bfd25652-9923-4c4c-86f2-9fea9fa2fas
X-Aws-Sqsd-Receive-Count: 1
X-Aws-Sqsd-Path: 
X-Aws-Sqsd-Queue: myqueue
Content-Length: 16
User-Agent: aws-sqsd/2.3
X-Aws-Sqsd-First-Received-At: 2017-09-10T16:19:53Z
X-Aws-Sqsd-Sender-Id: AIDAJP6NVOXNJ7HY7QYOM
X-Aws-Sqsd-Sent-At: 2017-09-10T16:19:53Z
Host: localhost
Content-Type: application/json

查看文档:http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features-managing-env-tiers.html#worker-daemon

我在获取消息属性时遇到了问题,结果(由 AWS 支持技术人员验证)AWS 实施或其文档中存在错误,因为问题是我使用的是在我的消息属性键名中添加下划线,据说支持但实际上使 HTTP headers 无法包含消息属性。