使用AWS EB Worker时的自定义标头

时间:2016-07-27 13:05:33

标签: node.js amazon-web-services amazon-sqs eb

我打算将我的nodejs应用程序部署为EB中的webserver + worker组合。 Web服务器将json(在请求主体中)插入到SQS队列中。然后工人读取队列并做一些工作。

问题是我的工作人员也需要标题。有没有办法为请求设置标题,以便我可以在worker中使用它?

1 个答案:

答案 0 :(得分:2)

是的,您可以设置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

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

我无法获取消息属性,事实证明(由AWS支持技术人员验证)AWS实施或文档中存在错误,因为问题是我在使用下划线我的消息属性键名称,据说是支持的,但在实践中使HTTP标题无法包含消息属性。