Ação Invoke Lambda function (Invocar uma função do Lambda) - Amazon Simple Email Service

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Ação Invoke Lambda function (Invocar uma função do Lambda)

A ação do Lambda chama seu código por meio de uma função do Lambda e, opcionalmente, o notifica por meio do Amazon SNS. Essa ação tem as seguintes opções e requisitos.

Opções
  • Lambda function (Função do Lambda): o ARN da função do Lambda. Um exemplo de ARN da função do Lambda é arn:aws:lambda:us-west-1:account-id:function:MyFunction.

  • Invocation type (Tipo de invocação): o tipo de invocação da função do Lambda. Um tipo de invocação de RequestResponse (Solicitar resposta) significa que a execução da função resulta em uma resposta imediata. Um tipo de invocação de Event (Evento) significa que a função é invocada de forma assíncrona. Recomendamos que você use o tipo de invocação Event (Evento), a menos que a execução síncrona seja necessária para seu caso de uso.

    Existe um tempo limite de 30 segundos nas invocações de RequestResponse.

    Para obter mais informações, consulte Invoke Lambda Functions (Evocar Funções Lambda) no AWS Lambda Developer Guide (Guia do desenvolvedor AWS Lambda).

  • SNS Topic (Tópico SNS): o nome ou o ARN do tópico do Amazon SNS a ser notificado quando a função do Lambda especificada for acionada. Um exemplo de ARN de um tópico do Amazon SNS é arn:aws:sns:us-east-1:123456789012:MyTopic. Para obter mais informações, consulte Criação de um tópico do Amazon SNS no Guia do desenvolvedor do Amazon Simple Notification Service.

Requisitos
  • A função do Lambda escolhida deve estar na mesma região da AWS que o endpoint do Amazon SES usado para receber e-mails.

  • O tópico do Amazon SNS escolhido deve estar na mesma região da AWS que o endpoint do Amazon SES usado para receber e-mails.

Redação de sua função do Lambda

Para processar seus e-mails, sua função do Lambda pode ser invocada de forma assíncrona (ou seja, usando o tipo de invocação Event). O objeto de evento passado para a função do Lambda conterá metadados relativos ao evento de e-mail de entrada. Você também pode usar os metadados para acessar o conteúdo da mensagem a partir de seu bucket do Amazon S3.

Se você deseja realmente controlar o fluxo de e-mails, sua função do Lambda deve ser invocada de forma síncrona (ou seja, usando o tipo de invocação RequestResponse) e sua função do Lambda deve chamar o método callback com dois argumentos: o primeiro argumento é null e o segundo argumento é uma propriedade disposition que é definida como STOP_RULE, STOP_RULE_SET ou CONTINUE. Se o segundo argumento for null ou não tiver uma propriedade disposition válida, o fluxo de e-mails continuará e outras ações e regras serão processados, que é o mesmo com CONTINUE.

Por exemplo, você pode interromper o conjunto de regras de recebimento aescrevendo a seguinte linha no final do código da função do Lambda:

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

Para obter exemplos de código do AWS Lambda, consulte Exemplos de função do Lambda. Para obter exemplos de casos de uso de alto nível, consulte Exemplos de casos de uso.

Formato de entrada

O Amazon SES passa informações para a função do Lambda no formato JSON. O objeto de nível superior contém uma matriz Records, que é preenchida com as propriedades eventSource, eventVersion e ses. O objeto ses contém os objetos receipt e mail, que estão exatamente no mesmo formato que nas notificações do Amazon SNS notificações descritas em Conteúdo das notificações .

Os dados que o Amazon SES passa para o Lambda incluem metadados sobre a mensagem, bem como vários cabeçalhos de e-mail. No entanto, não contêm o corpo da mensagem.

Veja a seguir uma visão de alto nível da estrutura da entrada que o Amazon SES fornece para a função do Lambda.

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

Return values

Sua função do Lambda pode controlar o fluxo de e-mails retornando um dos seguintes valores:

  • STOP_RULE – nenhuma ação adicional na regra de recebimento atual será processada, mas é possível processar mais regras de recebimento.

  • STOP_RULE_SET – nenhuma ação ou regras de recebimento adicionais serão processadas.

  • CONTINUE ou qualquer outro valor inválido – isso significa que ações e regras de recebimento adicionais podem ser processadas.

Os tópicos a seguir cobrem exemplos de eventos de e-mails, exemplos de casos de uso de alto nível e exemplos de código da AWS Lambda: