我正计划将我的nodejs应用程序部署为EB中的Web服务器+工作者组合。网络服务器将在JSON中(在请求正文中)插入SQS队列。然后,工人读取队列并做一些工作。
问题是我的工作人员中也需要标头。有什么方法可以将标头设置为请求,以便我可以在worker中使用它?
是的,您可以设置json正文以及消息属性。我已经证实了这一点。这是我从EB上的SQS守护程序收到的标头的日志(我的自定义字段是“ 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标头无法包含消息属性。