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 -