Создание и развертывание с помощью Консоли AWS
Мы можем создать функцию Lambda и протестировать ее в консоли AWS. В этой главе это обсуждается подробно. Для этого вам нужно будет выполнить шаги, приведенные здесь, и просмотреть соответствующие снимки экрана -
Шаг 1
Войдите в Консоль AWS https://aws.amazon.com/console/. Теперь вы будете перенаправлены на экран, где отображаются сервисы AWS.
Шаг 2
Теперь нажмите на Lambdaсервис, как указано выше. Это перенаправит на создание функции, как показано ниже -
Шаг 3
Теперь нажмите Create functionи введите сведения о функции. Затем вы можете увидеть экран, как показано ниже -
Шаг 4
Вы можете написать свой код, выбрав язык по вашему выбору. Код должен быть написан в редакторе, если выбран вариант редактирования кода в строке. Другие доступные варианты следующие -
Шаг 5
После этого вам нужно сохранить изменения, для которых кнопка находится в правом верхнем углу, как показано ниже -
Шаг 6
Теперь нажмите Testкнопка. Это дает все детали выполнения функции лямбда, как показано ниже -
Шаг 7
Код для index.js выглядит следующим образом -
exports.handler = (event, context, callback) => {
// TODO implement
callback(null, 'Lambda test');
};
Это вызовет Callback functionи результатом может быть ошибка или успех. В случае успеха вы увидитеLambda testсообщение; если ошибка будет передана null.
Шаг 8
В Role детали для функции лямбда являются частью конфигурации и отображаются, как показано ниже -
Шаг 9
Теперь при необходимости вы можете обновить роль и сохранить лямбда-функцию. Затем отображаются детали памяти и тайм-аута для лямбда-функции, как показано ниже -
Шаг 10
Теперь нам нужно добавить триггер к лямбда-функции, чтобы она выполнялась при возникновении события. Детали триггера отображаются в начале экрана функции AWS Lambda, как показано ниже:
Отсюда вы можете выбрать триггер, по которому должна срабатывать ваша лямбда-функция. Когда вы выбираете триггер, необходимо добавить сведения о его конфигурации.
Например, для триггера на S3 должны быть добавлены следующие детали конфигурации:
Шаг 11
Теперь выберите ведро, на котором вы хотите включить триггер. Тип события имеет следующие детали -
Шаг 12
Для триггера вы также можете указать файлы типа префикса или шаблон файла, лямбда должна быть триггером. Детали, как показано -
Шаг 13
Теперь введите необходимые данные для триггера и нажмите Add Кнопка. Сохраните функцию Lambda для добавления триггера. Сохранение функции развертывает детали, и с этого момента в любое время, когда файлы добавляются в корзину S3, Lambda будет запускаться.
Обратите внимание на следующий снимок экрана, на котором показан триггер S3, добавленный в AWS Lambda:
Шаг 14.
Теперь давайте воспользуемся примером события S3 для проверки лямбда-функции. Код для того же показан здесь -
Пример события 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 Lambda, чтобы распечатать детали 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: test bucket trigger. Обновите роль, используемую с Lambda, чтобы использовать политику S3 и SES (для отправки почты) для получения разрешений. Это обновит код AWS Lambda для отправки почты, чтобы увидеть, как работает триггер -
Обновленный код AWS Lambda выглядит следующим образом:
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 Lambda -