Построение лямбда-функции

Функция AWS Lambda выполняет код при вызове. В этой главе подробно рассматриваются все эти этапы жизненного цикла функции AWS Lambda.

Шаги по созданию лямбда-функции

Жизненный цикл лямбда-функции включает четыре необходимых шага:

  • Authoring
  • Deploying
  • Monitoring
  • Troubleshooting

Создание лямбда-кода

Код функции AWS Lambda можно написать на следующих языках:

  • NodeJS
  • Java,
  • Python
  • C#
  • Go.

Мы можем писать код для AWS Lambda с помощью консоли AWS, AWS CLI, из Eclipse IDE, из Visual Studio IDE, бессерверной среды и т. Д.

В следующей таблице показан список языков и различных инструментов и IDE, которые можно использовать для написания лямбда-функции.

Язык IDE для создания лямбда-кода
NodeJS

Консоль AWS Lambda

Visual Studio IDE

Ява Eclipse IDE
Python Консоль AWS Lambda
C #

Visual Studio IDE

Ядро .NET

Идти Консоль AWS Lambda

Развертывание лямбда-кода

Как только вы выберете язык, на котором хотите написать лямбда-функцию, есть два способа развернуть код:

  • Напишите код прямо в консоли AWS
  • Архивируйте или архивируйте файлы со всеми файлами и зависимостями

Однако помните, что для получения zip-файла необходимо предоставить соответствующее разрешение.

Тестирование лямбда-кода

Лямбда-код можно проверить на наличие событий в консоли AWS Lambda. Также можно протестировать функцию Lambda с помощью AWS cli и serverless cli. Консоль AWS также содержит данные о событиях, которые можно использовать в качестве примеров событий при тестировании функции AWS Lambda.

Мониторинг лямбда-функции

Мониторинг функции Lambda можно выполнить с помощью AWS CloudWatch. Мы можем добавлять необходимые сообщения журнала на выбранных нами языках и видеть то же самое в AWS CloudWatch.

Чтобы начать писать лямбда-функцию, нужно следовать шаблону. Ниже приведены основные основные концепции, которым необходимо следовать при написании лямбда-функции.

Обработчик

Обработчик - это имя лямбда-функции AWS, с которой начинается выполнение. Он отображается в консоли AWS, как показано ниже -

Обратите внимание, что здесь мы изменили обработчик по умолчанию на другое имя и обновили то же самое в обработчике -

Обратите внимание, что способ вызова обработчика отличается от языков, выбранных в качестве среды выполнения.

Параметры переданы обработчику

Если вы наблюдаете за функцией обработчика, переданные параметры event, context и call back function как показано ниже -

Event Параметр содержит все сведения об используемом триггере.

ContextПараметр в основном заботится о деталях времени выполнения для выполнения функции Lambda. Мы можем взаимодействовать с лямбда-функцией, используяcontextпарам. В нем есть такие сведения, как время, оставшееся до завершения функции AWS Lambda, то есть тайм-аут, указанный при создании функции Lambda, имя функции Lambda, имя группы cloudwatch, сведения о arn и т. Д.

пример

Давайте разберемся с деталями, полученными из объекта контекста AWS Lambda, на примере -

exports.lambdahandler = (event, context, callback) => {
   // TODO implement
   console.log("context object details");
   console.log(JSON.stringify(context));
   callback(null, 'Lambda test');
};

Когда вы выполняете функцию лямбда, показанную выше, вы можете увидеть следующий результат:

Вывод

В context подробности приведены ниже -

{
   "callbackWaitsForEmptyEventLoop":true,"logGroupName":"/aws/lambda/myfirstlambdafunction",
   "logStreamName":"2018/05/20/[$LATEST]04f17ee4ff7048d5bb1fedffaa807c71","functionName":
   "myfirstlambdafunction","memoryLimitInMB":"128","functionVersion":"$LATEST","invokeid":
   "c931e21c-5bf3-11e8-acfe-47fdbb39eee9","awsRequestId":"c931e21c-5bf3-11e8-acfe-47fdbb39eee9",
   "invokedFunctionArn":"arn:aws:lambda:us-east-1:625297745038:function:myfirstlambdafunction"
}

Обратите внимание, что в нем есть такие детали, как functionName, memorylimit, requestId и т. Д.

логирование

Журналы, добавленные в функцию Lambda, отображаются в AWS CloudWatch при выполнении функции AWS. Синтаксис журналов будет отличаться от выбранного языка. Например вnodejs, это console.log.

Это результат, который вы можете увидеть в AWSCloudWatch -

Обработка ошибок

Функция AWS Lambda предоставляет функцию обратного вызова, которая используется для уведомления функции Lambda об ошибке или успехе. Обратите внимание, что здесь мы использовали nodejs в качестве среды выполнения. Обработка ошибок будет отличаться в зависимости от выбранного языка.

Обратите внимание на приведенный здесь пример для лучшего понимания -

exports.lambdahandler = (event, context, callback) => {
   // TODO implement
   var error = new Error("There is error in code");
   callback(error);
};

Вывод

Когда вы тестируете лямбда-код, вы можете найти результат, как показано ниже -

Подробности журнала выглядят следующим образом -