

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 name="receiving-email-action-lambda"></a>

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 Lambda é arn:aws:lambda:us-east-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 **RequestResponse**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 [Invocar funções do Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-invocation.html) no *Guia do desenvolvedor do 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 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](https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html) no *Guia do desenvolvedor do Amazon Simple Notification Service*.

**Requisitos**
+ A função Lambda que você escolher deve estar na mesma AWS região do endpoint do Amazon SES que você usa para receber e-mails.
+ O tópico do Amazon SNS que você escolher deve estar na mesma AWS região do endpoint do Amazon SES que você usa para receber e-mails.

## Redação de sua função do Lambda
<a name="receiving-email-action-lambda-function"></a>

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 exemplos AWS Lambda de código, consulte[Exemplos de função do Lambda](receiving-email-action-lambda-example-functions.md). Para obter exemplos de casos de uso de alto nível, consulte [Exemplos de casos de uso](receiving-email-action-lambda-example-use-cases.md).

### Formato de entrada
<a name="receiving-email-action-lambda-input"></a>

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 ](receiving-email-notifications-contents.md).

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>
           }
         }
     }
   ]
}
```

### Valores de retorno
<a name="receiving-email-action-lambda-function-return-values"></a>

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.

**Topics**
+ [Redação de sua função do Lambda](#receiving-email-action-lambda-function)
+ [Exemplo de evento de recebimento de e-mail](receiving-email-action-lambda-event.md)
+ [Exemplos de casos de uso](receiving-email-action-lambda-example-use-cases.md)
+ [Exemplos de função do Lambda](receiving-email-action-lambda-example-functions.md)