Учебники

Использование лямбда-функции с пользовательскими приложениями

Мы можем использовать лямбда-функцию 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);};

Сообщение Sns

Давайте вызовем то же самое с помощью AWS CLI. Давайте сохраним событие в файле и используем его для полезной нагрузки с помощью показанной команды:

aws lambda invoke --function-name "lambdauserevent" --log-type Tail --
payload file://C:\clioutput\sns.txt C:\clioutput\snsoutput.txt