Функция 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 —
Обработка ошибок
Лямбда-функция AWS предоставляет функцию обратного вызова, которая используется для уведомления лямбда-функции о том, что произошла ошибка или произошел успех. Обратите внимание, что здесь мы использовали nodejs в качестве среды выполнения. Обработка ошибок будет отличаться в зависимости от выбранного языка.
Обратите внимание на приведенный здесь пример для лучшего понимания —
exports.lambdahandler = (event, context, callback) => { // TODO implement var error = new Error("There is error in code"); callback(error); };
Выход
Когда вы тестируете лямбда-код, вы можете найти вывод, как показано ниже —
Журнал детали следующим образом —