【发布时间】:2016-06-17 07:56:46
【问题描述】:
看起来很简单的任务,但很难找到好的例子。
因此,任务如下:AWS lambda 向 AWS-SQS 发送一些消息。
AWS lambda 的代码包含这样一行:
var QUEUE_URL = 'https://sqs.us-west-2.amazonaws.com/ID/QUEUE_NAME';",
为了摆脱这段代码,有两种可能的选择:
- 创建将根据区域和队列名称SQS has predictable names 查找此队列的查询;
- 创建 Cloud Formaion 脚本并在其中指定这些依赖项。
基于周期性触发器 (lambda) 每天会工作多次这一事实,最好在部署时指定此依赖项。
一般来说,它看起来就像创建了简单的任务和云形成脚本:
"Resources": {
"LF2HNR1": {
"Type": "AWS::Lambda::Function",
"Properties": {
"Description": "This is lambda trigger",
"Handler": "index.myHandler",
"Runtime": "nodejs",
"Timeout": "300",
还指定了 lambda 依赖于 SQS:
"DependsOn": [
"SQSQ562D4"
]
},
"SQSQ562D4": {
"Type": "AWS::SQS::Queue",
"Properties": {},
}
然而,如何在 lambda 代码中以编程方式获取 SQS url 并不是一项简单的任务:
exports.handler = function(event, context) {
var params = {
MessageBody: JSON.stringify(event),
var QUEUE_URL = ????
【问题讨论】:
-
如果您对我的回答感到满意,可以接受吗?谢谢!
标签: node.js amazon-web-services amazon-sqs aws-lambda amazon-cloudformation