Учебники

Создание и развертывание с помощью консоли AWS

Мы можем создать функцию Lambda и протестировать ее в консоли AWS. Эта глава обсуждает это подробно. Для этого вам нужно будет выполнить шаги, указанные здесь, и посмотреть соответствующие скриншоты, приведенные ниже.

Шаг 1

Войдите в консоль AWS https://aws.amazon.com/console/ . Теперь вы будете перенаправлены на экран, где отображаются сервисы AWS.

Сервисы 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.