Chiamata di un'operazione della funzione Lambda - Amazon Simple Email Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Chiamata di un'operazione della funzione Lambda

L'operazione Lambda chiama il codice tramite una funzione e, eventualmente, invia una notifica tramite Amazon SNS. Questa operazione della regola presenta le seguenti opzioni e requisiti.

Opzioni
  • Lambda function (Funzione Lambda): l'ARN della funzione Lambda. Un esempio di ARN di una funzione Lambda è arn:aws:lambda:us-east-1:account-id:function:MyFunction.

  • Invocation type (Tipo di chiamata): tipo di chiamata della funzione Lambda. Un tipo di invocazione di RequestResponse significa che l'esecuzione della funzione si traduce in una risposta immediata. Un tipo di invocazione di Event (Evento) significa che la funzione viene richiamata in modo asincrono. Ti consigliamo di usare il tipo di chiamata Event (Evento), a meno che l'esecuzione sincrona non sia assolutamente necessaria per il tuo caso d'uso.

    Nelle chiamate RequestResponse si verifica un time-out dopo 30 secondi.

    Per ulteriori informazioni, consulta Richiamo di funzioni AWS Lambda nella Guida per gli sviluppatori di AWS Lambda.

  • SNS Topic (Argomento SNS): nome o ARN dell'argomento Amazon SNS cui inviare una notifica quando viene attivata la funzione Lambda specificata. Un esempio di ARN di un argomento Amazon SNS è arn:aws:sns:us-east-1:123456789012:MyTopic. Per le istruzioni, consulta Creazione di un argomento Amazon SNS nella Guida per lo Sviluppatore di Amazon Simple Notification Service.

Requisiti
  • La funzione Lambda che scegli deve trovarsi nella stessa regione AWS dell'endpoint Amazon SES che usi per ricevere e-mail.

  • L'argomento Amazon SNS che scegli deve trovarsi nella stessa regione AWS dell'endpoint Amazon SES che usi per ricevere e-mail.

Scrittura della funzione Lambda

Per elaborare l'e-mail, la funzione Lambda può essere richiamata in modo asincrono, ovvero usando il tipo di chiamata Event. L'eventuale oggetto passato alla funzione Lambda conterrà i metadati relativi all'evento di e-mail in arrivo. Puoi usare i metadati anche per accedere al contenuto del messaggio dal bucket Amazon S3.

Se vuoi controllare effettivamente il flusso di posta, la funzione Lambda deve essere richiamata in modo sincrono, ovvero usando il tipo di chiamata RequestResponse e la funzione Lambda deve chiamare il metodo callback con due argomenti: il primo argomento è null e il secondo argomento è una proprietà disposition impostata su STOP_RULE, STOP_RULE_SET o CONTINUE. Se il secondo argomento è null o non ha una proprietà disposition valida, il flusso di posta continua e vengono elaborate ulteriori operazioni e regole. Questo comportamento corrisponde all'uso del valore CONTINUE.

Ad esempio, puoi arrestare la regola di ricezione impostata scrivendo la riga di codice seguente alla fine del codice della funzione Lambda:

callback( null, { "disposition" : "STOP_RULE_SET" });

Per alcuni esempi di codice AWS Lambda, consulta Esempi di funzione Lambda. Per alcuni esempi di casi d'uso generali, consulta Esempi di casi d'uso.

Formato di input

Amazon SES passa informazioni alla funzione Lambda in formato JSON. L'oggetto di primo livello contiene una matrice Records, che viene popolata con le proprietà eventSource, eventVersion e ses. L'oggetto ses contiene oggetti receipt e mail, che hanno esattamente lo stesso formato delle notifiche Amazon SNS; descritte in Contenuti delle notifiche.

I dati che Amazon SES trasmette a Lambda includono metadati relativi al messaggio, oltre a diverse intestazioni di posta elettronica. Tuttavia, non contiene il corpo del messaggio.

Di seguito viene mostrata una vista generale della struttura dell'input fornito da Amazon SES per la funzione Lambda.

{ "Records": [ { "eventSource": "aws:ses", "eventVersion": "1.0", "ses": { "receipt": { <same contents as SNS notification> }, "mail": { <same contents as SNS notification> } } } ] }

Valori restituiti

La funzione Lambda può controllare il flusso di posta restituendo uno dei valori seguenti:

  • STOP_RULE: non verranno elaborate ulteriori operazioni nella regola di ricezione corrente, ma possono essere elaborate altre regole di ricezione.

  • STOP_RULE_SET: non verranno elaborate ulteriori operazioni o regole di ricezione.

  • CONTINUE o qualsiasi altro valore non valido: indica che è possibile elaborare ulteriori operazioni e regole di ricezione.

Negli argomenti seguenti vengono illustrati alcuni esempi di eventi di posta in arrivo, esempi di casi d'uso generali ed esempi di codice AWS Lambda: