我计划将我的 Nodejs 应用程序部署为 EB 中的 Web 服务器 + 工作线程组合。 Web 服务器会将 json (在请求正文中)插入到 SQS 队列中。然后,Worker 读取队列并执行一些工作。
问题是我的工作人员中也需要 header 。有没有办法为请求设置 header ,以便我可以在工作人员中使用它?
最佳答案
是的,您可以设置 json 正文以及消息属性。我已经验证了这一点。以下是我从 EB 上的 SQS 守护程序收到的 header 日志(我的自定义字段是“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
我在获取消息属性时遇到了困难,结果(经 AWS 支持技术人员验证)AWS 实现或其文档中存在错误,因为问题是我在中使用了下划线我的消息属性键名称,据说是受支持的,但实际上导致 HTTP header 无法包含消息属性。
关于node.js - 使用 AWS EB Worker 时的自定义 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38613836/