Мы можем создать функцию Lambda и протестировать ее в консоли AWS. Эта глава обсуждает это подробно. Для этого вам нужно будет выполнить шаги, указанные здесь, и посмотреть соответствующие скриншоты, приведенные ниже.
Шаг 1
Войдите в консоль AWS https://aws.amazon.com/console/ . Теперь вы будете перенаправлены на экран, где отображаются сервисы AWS.
Шаг 2
Теперь нажмите на сервис Lambda, как указано выше. Это перенаправит на создание функции, как показано ниже —
Шаг 3
Теперь нажмите « Создать функцию» и введите сведения о функции. Затем вы можете увидеть экран, как показано ниже —
Шаг 4
Вы можете написать свой код, выбрав нужный язык. Код должен быть написан в редакторе, если выбрана опция редактирования кода в строке. Другие доступные варианты следующие:
Шаг 5
После этого вам нужно сохранить изменения, для которых кнопка дается в правом верхнем углу, как показано ниже —
Шаг 6
Теперь нажмите кнопку « Тест» . Это дает все детали выполнения лямбда-функции, как показано ниже —
Шаг 7
Код для index.js выглядит следующим образом —
exports.handler = (event, context, callback) => { // TODO implement callback(null, 'Lambda test'); };
Это вызовет функцию обратного вызова, и результатом может быть ошибка или успех. В случае успеха вы увидите лямбда-тестовое сообщение; если ошибка, то она будет равна нулю.
Шаг 8
Сведения о роли для лямбда-функции являются частью конфигурации и отображаются, как показано ниже:
Шаг 9
Теперь вы можете обновить роль, если требуется, и сохранить функцию Lambda. Затем данные памяти и тайм-аута для лямбда-функции отображаются, как показано ниже —
Шаг 10
Теперь нам нужно добавить триггер к функции Lambda, чтобы она выполнялась при возникновении события. Детали триггера отображаются в начале экрана функции AWS Lambda, как показано ниже —
Из этого вы можете выбрать триггер, который должен запускаться вашей лямбда-функцией. Когда вы выбираете триггер, необходимо добавить детали конфигурации для триггера.
Например, для триггера на S3 необходимо добавить следующие подробности конфигурации:
Шаг 11
Теперь выберите ведро, на которое вы хотите включить курок. Тип события имеет следующие детали —
Шаг 12
Для триггера вы также можете указать префикс типа файлов или шаблон файла, лямбда должна быть триггером. Детали как показано —
Шаг 13
Теперь заполните необходимые данные для триггера и нажмите кнопку « Добавить». Сохраните лямбда-функцию для триггера, который будет добавлен. Сохраняя функцию, развертывает детали, и с этого момента в любое время файлы добавляются в корзину S3, лямбда получит срабатывает.
Посмотрите на следующий снимок экрана, на котором показан триггер S3, добавленный в AWS Lambda.
Шаг 14
Теперь давайте воспользуемся примером события S3 для проверки функции Lambda. Код для того же самого показан здесь —
Amazon S3 Put Пример события
{ "Records": [{ "eventVersion": "2.0", "eventTime": "1970-01-01T00:00:00.000Z", "requestParameters": { "ExampleIPAddress": "127.0.0.1" }, "s3": { "configurationId": "testConfigRule", "object": { "eTag": "0123456789abcdef0123456789abcdef", "sequencer": "0A1B2C3D4E5F678901", "key": "HappyFace.jpg", "size": 1024 }, "bucket": { "arn": bucketarn, "name": "Examplebucket", "ownerIdentity": { "principalId": "Example" } }, "s3SchemaVersion": "1.0" }, "responseElements": { "x-amz-id-2": "Example123/5678abcdefghijklambdaisawesome/mnopqrstuvwxyzABCDEFGH", "x-amz-request-id": "Example123456789" }, "awsRegion": "us-east-1", "eventName": "ObjectCreated:Put", "userIdentity": { "principalId": "Example" }, "eventSource": "aws:s3" }] }
Вам нужно будет использовать следующую команду, чтобы получить информацию о файле, загруженном из события S3 put —
event.Records[0].s3.object.key //will display the name of the file
Вы должны будете использовать следующую команду, чтобы получить имя сегмента —
event.Records[0].s3.bucket.name //will give the name of the bucket.
Вам нужно будет использовать следующую команду, чтобы получить EventName —
event.Records[0].eventName // will display the event name
Шаг 15
Теперь давайте обновим лямбда-код AWS, чтобы распечатать детали S3, как показано ниже.
exports.lambdahandler = (event, context, callback) => { callback(null, "Bucket name: "+event.Records[0].s3.bucket.name+" File name:"+event.Records[0].s3.object.key ); };
Шаг 16
Сохраните изменения. Нажмите Test и введите пример события S3 —
Шаг 17
Теперь нажмите Test, и вы увидите результат, как показано на рисунке —
Шаг 18
Чтобы протестировать триггер на S3 с помощью сервиса S3 AWS, загрузите файл в корзину S3: триггер тестовой корзины . Обновите роль, используемую с Lambda для получения политики S3 и SES (для отправки почты) для разрешений. Это обновит лямбда-код AWS для отправки почты, чтобы увидеть работу триггера —
Обновленный лямбда-код AWS выглядит так:
var aws = require('aws-sdk'); var ses = new aws.SES({ region: 'us-east-1' }); exports.lambdahandler = function(event, context, callback) { var eParams = { Destination: { ToAddresses: ["[email protected]"] }, Message: { Body: { Text: { Data: "Bucket name: "+event.Records[0].s3.bucket.name+" File name:"+event.Records[0].s3.object.key } }, Subject: { Data: "S3 and AWS Lambda" } }, Example: "[email protected]" }; console.log('===SENDING EMAIL==='); var email = ses.sendEmail(eParams, function(err, data) { if (err) console.log(err); else { console.log("===EMAIL SENT==="); console.log("EMAIL CODE END"); console.log('EMAIL: ', email); context.succeed(event); callback(null, "email is send"); } }); };
Соответствующий скриншот, как показано здесь —
Шаг 19
Теперь загрузите файл и проверьте почтовый идентификатор, указанный в лямбда-коде AWS.