Использование лямбда-функции с пользовательскими приложениями
Мы можем использовать лямбда-функцию AWS для обработки событий, сгенерированных пользовательским приложением, следующими двумя способами:
- Использование Консоли AWS
- Использование AWS CLI
Использование Консоли AWS
Из консоли AWS будем работать с событиями и AWS Lambda. Для этого перейдите в консоль AWS и создайте лямбда-функцию.
Затем давайте добавим код для AWS Lambda -
exports.handler = (event, context, callback) => {
// TODO implement
console.log("Hello => "+ event.name);
console.log("Address =>"+ event.addr);
callback(null, 'Hello '+event.name +" and address is "+ event.addr);
};
Обратите внимание, что в приведенном выше коде мы печатаем имя и адрес, используя событие.
Детали события будут предоставлены с использованием тестового события, созданного следующим образом:
Теперь сохраните событие и проверьте его.
Соответствующий вывод журнала показан здесь -
Использование AWS CLI
Мы можем вызвать указанную выше функцию с помощью AWS CLI следующим образом:
aws lambda invoke --function-name "lambdauserevent" --log-type Tail --
payload file://C:\clioutput\input.txt C:\clioutput\outputfile.txt
Детали события передаются в полезную нагрузку, а вывод сохраняется в C:\clioutput\outputfile.txt. следующим образом -
input.txt
{"name":"Roy Singh", "addr":"Mumbai"}
При вызове Lambda с помощью AWS CLI вы можете увидеть, что результат выглядит следующим образом:
Точно так же, если вы хотите протестировать AWS Lambda для любого другого сервиса AWS, вы можете сделать это с помощью тестового события в консоли AWS и AWS CLI. Пример события для службы SNS показан ниже -
{
"Records": [{
"EventVersion": "1.0",
"EventSubscriptionArn": "arnid",
"EventSource": "aws:sns",
"Sns": {
"SignatureVersion": "1",
"Timestamp": "1970-01-01T00:00:00.000Z",
"Signature": "EXAMPLE",
"SigningCertUrl": "EXAMPLE",
"MessageId": "95df01b4-ee98-5cb9-9903-4c221d41eb5e",
"Message": "Hello from SNS!",
"MessageAttributes": {
"Test": {
"Type": "String",
"Value": "TestString"
},
"TestBinary": {
"Type": "Binary",
"Value": "TestBinary"
}
},
"Type": "Notification",
"UnsubscribeUrl": "EXAMPLE",
"TopicArn": "topicarn",
"Subject": "TestInvoke"
}
}]
}
Давайте добавим пример события, показанного выше, и протестируем его, как показано -
В AWS Lambda код распечатает сообщение SNS, как показано в примере, приведенном ниже:
exports.handler = (event, context, callback) => {
// TODO implement
console.log(event.Records[0].Sns.Message);
callback(null, event.Records[0].Sns.Message);};
Давайте вызовем то же самое с помощью AWS CLI. Давайте сохраним событие в файле и используем его для полезной нагрузки, используя показанную команду -
aws lambda invoke --function-name "lambdauserevent" --log-type Tail --
payload file://C:\clioutput\sns.txt C:\clioutput\snsoutput.txt