Построение лямбда-функции
Функция 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);
};
Вывод
Когда вы тестируете лямбда-код, вы можете найти результат, как показано ниже -
Подробности журнала выглядят следующим образом -