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 -