Учебники

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

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

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

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

  • авторинг
  • Развертывание
  • мониторинг
  • Поиск проблемы

Авторский лямбда-код

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

  • NodeJS
  • Джава,
  • питон
  • C #
  • Идти.

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

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

язык IDE для авторизации лямбда-кода
NodeJS

AWS Lambda Console

Visual Studio IDE

Джава Eclipse IDE
питон AWS Lambda Console
C #

Visual Studio IDE

.NET core

Идти AWS Lambda Console

AWS Lambda Console

Visual Studio IDE

Visual Studio IDE

.NET core

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

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

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

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

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

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

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

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

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

укротитель

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

укротитель

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

Обработчик по умолчанию

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

Параметры передаются обработчику

Если вы наблюдаете функцию-обработчик, переданные параметры — это событие, контекст и функция обратного вызова, как показано ниже —

Переданные параметры

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

Параметр context в основном заботится о деталях времени выполнения для выполнения функции Lambda. Мы можем взаимодействовать с лямбда-функцией, используя контекстный параметр. Он содержит такие данные, как время, оставшееся до завершения функции 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');
};

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

Выход

Резюме

Подробности контекста приведены ниже:

{
   "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 —

AWSCloudWatch

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

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

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

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

Выход

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

Результат выполнения не выполнен

Журнал детали следующим образом —