Выглядит как действительно простая задача, но трудно найти на ней хороший пример.
Итак, задача следующая: AWS lambda отправляет какое-то сообщение в AWS-SQS.
Код AWS lambda содержит такую строку:
var QUEUE_URL = 'https://sqs.us-west-2.amazonaws.com/ID/QUEUE_NAME';",
Чтобы избавиться от этого кода, есть два варианта:
- Создайте запрос, который будет искать эту очередь на основе региона и имени очереди. SQS имеет предсказуемые имена;
- Создайте скрипт Cloud Formaion и укажите там эти зависимости.
Основываясь на том факте, что периодический триггер (лямбда) будет срабатывать много раз в день, лучше указать эту зависимость во время развертывания.
В общем, похоже, что прямая задача и скрипт облачных образований были созданы:
"Resources": {
"LF2HNR1": {
"Type": "AWS::Lambda::Function",
"Properties": {
"Description": "This is lambda trigger",
"Handler": "index.myHandler",
"Runtime": "nodejs",
"Timeout": "300",
А также была указана зависимость, что лямбда зависит от SQS:
"DependsOn": [
"SQSQ562D4"
]
},
"SQSQ562D4": {
"Type": "AWS::SQS::Queue",
"Properties": {},
}
Но это непростая задача, как программно получить URL-адрес SQS в лямбда-коде:
exports.handler = function(event, context) {
var params = {
MessageBody: JSON.stringify(event),
var QUEUE_URL = ????