Creazione e distribuzione utilizzando la Console AWS

Possiamo creare la funzione Lambda e testarla nella console AWS. Questo capitolo discute questo in dettaglio. A tale scopo, dovrai seguire i passaggi indicati qui e osservare i rispettivi screenshot forniti -

Passo 1

Accedi alla Console AWS https://aws.amazon.com/console/. Ora verrai reindirizzato alla schermata in cui vengono visualizzati i servizi AWS.

Passo 2

Ora fai clic su Lambdaservizio come evidenziato sopra. Questo reindirizzerà per creare la funzione come mostrato di seguito -

Passaggio 3

Ora fai clic su Create functione inserisci i dettagli della funzione. Quindi puoi vedere una schermata come mostrato di seguito -

Passaggio 4

Puoi scrivere il tuo codice scegliendo la lingua che preferisci. Il codice deve essere scritto nell'editor se l'opzione selezionata è edit code inline. Le altre opzioni disponibili sono le seguenti:

Passaggio 5

Una volta terminato è necessario salvare le modifiche per le quali viene fornito il pulsante nell'angolo in alto a destra come mostrato di seguito -

Passaggio 6

Ora fai clic su Testpulsante. Questo fornisce tutti i dettagli sull'esecuzione della funzione Lambda come mostrato di seguito:

Passaggio 7

Il codice per index.js è il seguente -

exports.handler = (event, context, callback) => {
   // TODO implement
   callback(null, 'Lambda test');
};

Questo chiamerà il file Callback functione il risultato può essere errore o successo. In caso di successo vedrai un fileLambda testMessaggio; in caso di errore passerà null.

Passaggio 8

Il Role i dettagli per la funzione Lambda fanno parte della configurazione e vengono visualizzati come mostrato di seguito:

Passaggio 9

Ora puoi aggiornare il ruolo se necessario e salvare la funzione Lambda. Quindi, i dettagli della memoria e del timeout per la funzione lambda vengono visualizzati come mostrato di seguito:

Passaggio 10

Ora, dobbiamo aggiungere un trigger alla funzione Lambda in modo che venga eseguito quando si verifica l'evento. I dettagli del trigger vengono visualizzati all'inizio della schermata della funzione AWS Lambda come mostrato di seguito:

Da questo, puoi selezionare il trigger che desideri venga attivato dalla funzione Lambda. Quando si seleziona il trigger, è necessario aggiungere i dettagli di configurazione per il trigger.

Ad esempio, per il trigger su S3 i dettagli di configurazione da aggiungere sono i seguenti:

Passaggio 11

Ora seleziona il bucket su cui desideri attivare il trigger. Il tipo di evento ha i seguenti dettagli:

Passaggio 12

Per il trigger, puoi anche menzionare il tipo di prefisso files o file pattern, Lambda deve essere trigger. I dettagli sono come mostrato -

Passaggio 13

Ora, inserisci i dettagli richiesti per il trigger e fai clic Add Salva la funzione Lambda affinché venga aggiunto il trigger Il salvataggio della funzione distribuisce i dettagli e da ora in poi ogni volta che i file vengono aggiunti al bucket S3, Lambda verrà attivato.

Osserva lo screenshot seguente che mostra il trigger S3 aggiunto ad AWS Lambda:

Passaggio 14

Ora, utilizziamo l'evento di esempio S3 per testare la funzione Lambda. Il codice per lo stesso è mostrato qui -

Evento di esempio Put di Amazon S3

{
   "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"
   }]
}

Dovrai utilizzare il seguente comando per ottenere i dettagli del file caricato dall'evento put di S3 -

event.Records[0].s3.object.key     //will display the name of the file

Dovrai utilizzare il seguente comando per ottenere il nome del bucket:

event.Records[0].s3.bucket.name    //will give the name of the bucket.

Dovrai utilizzare il seguente comando per ottenere EventName:

event.Records[0].eventName        // will display the event name

Passaggio 15

Ora, aggiorniamo il codice AWS Lambda per stampare i dettagli S3 come mostrato di seguito:

exports.lambdahandler = (event, context, callback) => {
   callback(null, "Bucket name: "+event.Records[0].s3.bucket.name+"  
   File name:"+event.Records[0].s3.object.key );
};

Passaggio 16

Salva le modifiche. ClicTest e accedi all'evento di esempio S3 -

Passaggio 17

Ora fai clic Test e puoi vedere l'output come mostrato -

Passaggio 18

Per testare il trigger su S3 utilizzando il servizio AWS S3, carica un file nel bucket S3: test bucket trigger. Aggiorna il ruolo utilizzato con Lambda per accettare i criteri S3 e SES (per inviare posta) per le autorizzazioni. Questo aggiornerà il codice AWS Lambda per inviare la posta e vedere il trigger in funzione -

Il codice AWS Lambda aggiornato è come mostrato:

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");
         }
   });
};

Lo screenshot corrispondente è come mostrato qui -

Passaggio 19

Ora carica il file e controlla l'ID di posta fornito nel codice AWS Lambda -