Invoquer l'action de fonction Lambda - Amazon Simple Email Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Invoquer l'action de fonction Lambda

L'action Lambda appelle votre code via une fonction Lambda et vous avertit éventuellement via Amazon SNS. Cette action a les options et les exigences suivantes.

Options
  • Lambda function (Fonction Lambda) — L'ARN de la fonction Lambda. Voici un exemple d'ARN de fonction Lambda : arn:aws:lambda:us-east-1:account-id:function:MyFunction.

  • Invocation type (Type d'invocation) — Le type d'appel de la fonction Lambda. Un type d'appel RequestResponse implique que l'exécution de la fonction entraîne une réponse immédiate. Un type d'appel Event (Événement) implique que la fonction est appelée de manière asynchrone. Nous vous conseillons d'utiliser le type d'appel Event (Événement), sauf si une exécution synchrone est absolument nécessaire à votre cas d'utilisation.

    Les appels RequestResponse sont soumis à un délai d'expiration de 30 secondes.

    Pour plus d'informations, veuillez consulter la section Appeler Lambda avec Step Functions dans le Guide du développeur AWS Lambda.

  • SNS Topic (Rubrique SNS) — Le nom ou l'ARN de la rubrique Amazon SNS à avertir lorsque la fonction Lambda spécifiée est déclenchée. Voici un exemple d'ARN de rubrique Amazon SNS : arn:aws:sns:us-east-1:123456789012:MyTopic. Pour plus d'informations, consultez Création d'une rubrique Amazon SNS dans le Guide du développeur Amazon Simple Notification Service.

Prérequis
  • La fonction Lambda que vous choisissez doit être située dans la même région AWS que le point de terminaison Amazon SES que vous utilisez pour recevoir des e-mails.

  • La rubrique Amazon SNS que vous choisissez doit être située dans la même région AWS que le point de terminaison Amazon SES que vous utilisez pour recevoir des e-mails.

Écriture de votre fonction Lambda

Pour traiter les e-mails, votre fonction Lambda peut être appelée de façon asynchrone (c'est-à-dire, à l'aide du type d'appel Event). L'objet d'événement transmis à votre fonction Lambda contient des métadonnées concernant l'événement d'e-mail entrant. Vous pouvez également utiliser les métadonnées pour accéder au contenu du message depuis votre compartiment Amazon S3.

Si vous souhaitez réellement contrôler le flux de messagerie, votre fonction Lambda doit être appelée de manière synchrone (c'est-à-dire, à l'aide du type d'appel RequestResponse) et votre fonction Lambda doit appeler la méthode callback avec deux arguments, le premier argument étant null et le deuxième argument, une propriété disposition qui est définie sur STOP_RULE, STOP_RULE_SET ou CONTINUE. Si le deuxième argument est null ou n'a pas de propriété disposition valide, le flux de messagerie continue, et de nouvelles actions et règles sont traitées, ce qui est identique à CONTINUE.

Par exemple, vous pouvez arrêter l'ensemble de règles de réception en écrivant la ligne suivante à la fin du code de votre fonction Lambda :

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

Pour obtenir des exemples de code AWS Lambda, consultez Exemples de fonctions Lambda. Pour obtenir des exemples de cas d'utilisation de haut niveau, consultez Exemples de cas d'utilisation.

Format d'entrée

Amazon SES transmet des informations à la fonction Lambda au format JSON. L'objet de niveau supérieur contient un tableau Records qui est alimenté avec les propriétés eventSource, eventVersion et ses. L'objet ses contient des objets receipt et mail qui sont exactement au même format que dans les notifications Amazon SNS décrites dans Contenu des notifications .

Les données qu'Amazon SES transmet à Lambda incluent des métadonnées sur le message, ainsi que plusieurs en-têtes de messagerie. Par contre, elles ne contiennent pas le corps du message.

Voici une vue d'ensemble de la structure de l'entrée fournie par Amazon SES à la fonction Lambda.

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

Valeurs de retour

Votre fonction Lambda peut contrôler le flux de messagerie en renvoyant l'une des valeurs suivantes :

  • STOP_RULE – Aucune autre action de la règle de réception actuelle ne sera traitée, mais d'autres règles de réception peuvent être traitées.

  • STOP_RULE_SET – Aucune autre action ou règle de réception ne sera traitée.

  • CONTINUE (ou toute autre valeur non valide) – Signifie que de nouvelles actions et règles de réception peuvent être traitées.

Les rubriques suivantes couvrent des exemples d'événements de messagerie entrants, des exemples de cas d'utilisation de haut niveau et exemples de code AWS Lambda :