Мы можем использовать лямбда-функцию AWS для обработки сгенерированных событий пользовательским приложением следующими двумя способами:
- Использование AWS Console
- Использование AWS CLI
Использование AWS Console
С консоли 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, вы можете сделать это, используя событие test в консоли 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