Criação e implantação usando o console AWS
Podemos criar a função Lambda e testar a mesma no console AWS. Este capítulo discute isso em detalhes. Para isso, você terá que seguir os passos dados aqui e observar as respectivas imagens fornecidas -
Passo 1
Faça login no console AWS https://aws.amazon.com/console/. Agora, você será redirecionado para a tela onde os serviços da AWS são exibidos.

Passo 2
Agora clique em Lambdaserviço conforme destacado acima. Isso irá redirecionar para criar a função conforme mostrado abaixo -

etapa 3
Agora clique Create functione insira os detalhes da função. Então você pode ver uma tela conforme mostrado abaixo -

Passo 4
Você pode escrever seu código escolhendo o idioma de sua escolha. O código deve ser escrito no editor se a opção selecionada for editar código embutido. As outras opções disponíveis são as seguintes -

Etapa 5
Uma vez feito isso, você precisa salvar as alterações para as quais o botão é fornecido no canto superior direito, conforme mostrado abaixo -

Etapa 6
Agora clique Testbotão. Isso dá todos os detalhes da execução da função Lambda como mostrado abaixo -

Etapa 7
O código para index.js é o seguinte -
exports.handler = (event, context, callback) => {
// TODO implement
callback(null, 'Lambda test');
};
Isso vai chamar o Callback functione o resultado pode ser erro ou sucesso. No sucesso, você verá umLambda testmensagem; se houver erro, passará nulo.
Etapa 8
o Role os detalhes da função Lambda fazem parte da configuração e são exibidos conforme mostrado abaixo -

Etapa 9
Agora, você pode atualizar a função, se necessário, e salvar a função Lambda. Em seguida, os detalhes de memória e tempo limite para a função lambda são exibidos conforme mostrado abaixo -

Etapa 10
Agora, precisamos adicionar gatilho à função Lambda para que seja executada quando o evento ocorrer. Os detalhes do acionador são exibidos no início da tela de função do AWS Lambda conforme mostrado abaixo -

A partir daí, você pode selecionar o gatilho que deseja que sua função Lambda seja ativada. Ao selecionar o gatilho, os detalhes de configuração do gatilho devem ser adicionados.
Por exemplo, para o gatilho no S3, os detalhes de configuração a serem adicionados são os seguintes -

Etapa 11
Agora, selecione o balde em que deseja ativar o gatilho. O tipo de evento tem os seguintes detalhes -

Etapa 12
Para o gatilho, você também pode mencionar os arquivos do tipo prefixo ou padrão de arquivo, o Lambda tem que ser gatilho. Os detalhes são mostrados -

Etapa 13
Agora, preencha os detalhes necessários para o gatilho e clique Add botão .Salve a função Lambda para que o gatilho seja adicionado. Salvar a função implanta os detalhes e, a partir de agora, sempre que arquivos forem adicionados ao balde S3, o Lambda será ativado.
Observe a seguinte captura de tela que mostra o gatilho S3 adicionado ao AWS Lambda -

Etapa 14
Agora, vamos usar o evento de amostra S3 para testar a função Lambda. O código para o mesmo é mostrado aqui -
Amazon S3 Put Sample Event
{
"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"
}]
}
Você terá que usar o seguinte comando para obter os detalhes do arquivo carregado do evento put S3 -
event.Records[0].s3.object.key //will display the name of the file
Você terá que usar o seguinte comando para obter o nome do intervalo -
event.Records[0].s3.bucket.name //will give the name of the bucket.
Você terá que usar o seguinte comando para obter o EventName -
event.Records[0].eventName // will display the event name
Etapa 15
Agora, vamos atualizar o código AWS Lambda para imprimir os detalhes S3 conforme mostrado abaixo -
exports.lambdahandler = (event, context, callback) => {
callback(null, "Bucket name: "+event.Records[0].s3.bucket.name+"
File name:"+event.Records[0].s3.object.key );
};
Etapa 16
Salve as alterações. CliqueTest e entrar no evento de amostra S3 -

Etapa 17
Agora clique Test e você pode ver a saída conforme mostrado -

Etapa 18
Para testar o gatilho no S3 usando o serviço S3 AWS, carregue um arquivo no intervalo S3: test bucket trigger. Atualize a função usada com Lambda para obter a política S3 e SES (para enviar correio) para permissões. Isso atualizará o código AWS Lambda para enviar e-mail para ver o acionador funcionando -
O código AWS Lambda atualizado é mostrado -
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");
}
});
};
A captura de tela correspondente é mostrada aqui -

Etapa 19
Agora, carregue o arquivo e verifique a id de e-mail fornecida no código AWS Lambda -
