В предыдущих главах мы узнали, как создать функцию AWS Lambda в консоли AWS. Однако есть и другие параметры для создания лямбда-функции. К ним относятся распределение памяти, время ожидания и т. Д.
В этой главе давайте подробно разберемся со следующими свойствами конфигурации для AWS Lambda.
Выделение памяти
Войдите в консоль AWS и создайте или выберите существующую лямбда-функцию. Нажмите вкладку Конфигурация, чтобы получить подробную информацию о выделенной памяти. Посмотрите на скриншот, показанный ниже —
Обратите внимание, что по умолчанию выделенная память составляет 128 МБ . Если вы хотите увеличить память, вы можете нажать на ползунок.
Память будет увеличена до 64 МБ при перемещении ползунка. Обратите внимание, что максимальный объем доступной памяти составляет 3008 МБ . Посмотрите на скриншот, показанный ниже —
Вы также можете использовать aws cli из командной строки для увеличения лимита памяти. Вам придется отдавать память с шагом 64 МБ.
Теперь давайте увеличим лимит памяти AWS Lambda с именем myfirstlambdafunction .
Детали памяти функции показаны на скриншоте ниже:
Команда, используемая для изменения памяти с помощью aws cli, выглядит следующим образом:
aws lambda update-function-configuration --function-name your function name -- region region where your function resides --memory-size memory amount -- profile admin user
Соответствующий вывод AWS Lambda-функции myfirstlambdafunction в консоли AWS показан здесь. Обратите внимание, что память изменяется с 128 МБ до 256 МБ.
Максимальное время выполнения
Тайм-аут — это время, выделенное лямбда-функции AWS для завершения в случае тайм-аута. Функция AWS Lambda будет работать в течение выделенного времени или завершится, если она превысит заданное время ожидания. Вам необходимо оценить время, необходимое для выполнения функции, и соответственно выбрать время на вкладке Конфигурация в консоли AWS, как показано ниже —
Роль IAM
При создании лямбда-функции AWS необходимо назначить роль или разрешение. Если вам нужна AWS Lambda для S3 или DynamoDB, необходимо назначить разрешение в отношении сервисов Lambda. На основании назначенной роли AWS Lambda определит, какие шаги необходимо предпринять. Например, если вы предоставляете полный доступ к DynamodB, вы можете добавлять, обновлять и удалять строки из таблицы DynamodB.
Имя обработчика
Это начало выполнения функции AWS Lambda. Функция-обработчик имеет подробную информацию о сработавшем событии, объекте контекста и обратном вызове, который должен отправить обратно в случае успеха или ошибки AWS Lambda.
Формат функции-обработчика в nodejs показан здесь —
exports.handler = (event, context, callback) => { callback(null, "hello from lambda"); };
Лямбда-функция с использованием переменных среды
В этом разделе мы создадим простую лямбда-функцию с использованием переменных среды, добавленных в раздел конфигурации. Для этого выполните шаги, указанные ниже, и обратитесь к соответствующим скриншотам —
Шаг 1
Перейдите в консоль AWS и создайте функцию в Lambda, как показано на рисунке.
Шаг 2
Теперь добавьте переменные окружения, как показано на рисунке —
Шаг 3
Теперь давайте возьмем то же самое в лямбда-коде следующим образом:
exports.handler = (event, context, callback) => { var hostName = process.env.host; var userName = process.env.username; callback(null, "Environment Variables =>"+hostName+" and "+userName); };
Шаг 4
Чтобы получить подробности из переменных среды, нам нужно использовать process.env, как показано. Обратите внимание, что этот синтаксис предназначен для среды выполнения NodeJS .
var hostName = process.env.host; var userName = process.env.username;
Шаг 5
Вывод для лямбда-функции при выполнении будет таким, как показано —