

Aviso de fim do suporte: em 31 de março de 2027, AWS encerrará o suporte para a Amazon WorkMail. Depois de 31 de março de 2027, você não poderá mais acessar o WorkMail console da Amazon ou os WorkMail recursos da Amazon. Para obter mais informações, consulte [ WorkMail Fim do suporte da Amazon](https://docs.aws.amazon.com/workmail/latest/adminguide/workmail-end-of-support.html). 

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á.

# Configurando AWS Lambda para a Amazon WorkMail
<a name="lambda"></a>

Use a ação **Executar Lambda** nas regras de fluxo de e-mails de entrada e saída para passar mensagens de e-mail que correspondam às regras para uma AWS Lambda função de processamento.

Escolha entre as seguintes configurações para uma ação **Run Lambda** na Amazon. WorkMail

**Configuração síncrona de **Executar o ****  
As mensagens de e-mail que correspondem à regra de fluxo são transmitidas para uma função do Lambda para processamento antes de serem enviadas ou entregues. Use essa configuração para modificar o conteúdo do e-mail. Você também pode controlar o fluxo de e-mails de entrada ou saída para diferentes casos de uso. Por exemplo, uma regra transmitida para uma função do Lambda pode bloquear a entrega de mensagens de e-mail confidenciais, remover anexos ou adicionar avisos de isenção de responsabilidade.

**Configuração assíncrona de **Executar o Lambda****  
As mensagens de e-mail que correspondem à regra de fluxo são transmitidas para uma função do Lambda para processamento enquanto são enviadas ou entregues. Essa configuração não afeta a entrega de e-mail e é usada para tarefas como coletar métricas para mensagens de e-mail de entrada ou saída.

Independentemente de você escolher uma configuração síncrona ou assíncrona, o objeto de evento transmitido para a função do Lambda contém metadados para o evento de e-mail de entrada ou saída. Também é possível usar o ID da mensagem nos metadados para acessar o conteúdo completo da mensagem de e-mail. Para obter mais informações, consulte [Recuperando o conteúdo da mensagem com AWS Lambda](lambda-content.md). Para obter mais informações sobre eventos de e-mail, consulte [Dados de eventos do Lambda](#lambda-data).

Para obter mais informações sobre as regras de fluxo de e-mails enviados e recebidos, consulte [Gerenciar fluxos de e-mail](email-flows.md). Para obter mais informações sobre o Lambda, consulte o [https://docs.aws.amazon.com/lambda/latest/dg/welcome.html](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html).

**nota**  
Atualmente, as regras de fluxo de e-mail do Lambda fazem referência somente às funções do Lambda na mesma região da AWS e da organização Conta da AWS da Amazon WorkMail que está sendo configurada.

## Começando a usar AWS Lambda para a Amazon WorkMail
<a name="start-lambda"></a>

Para começar a usar AWS Lambda com a Amazon WorkMail, recomendamos implantar a função [ WorkMail Hello World Lambda](https://console.aws.amazon.com/lambda/home#/create/app?applicationId=arn:aws:serverlessrepo:us-east-1:489970191081:applications/workmail-hello-world-python) AWS Serverless Application Repository na sua conta. A função tem todos os recursos necessários e as permissões configuradas para você. Para obter mais exemplos, consulte o [amazon-workmail-lambda-templates](https://github.com/aws-samples/amazon-workmail-lambda-templates)repositório em. GitHub

Se você optar por criar sua própria função Lambda, deverá configurar as permissões usando o AWS Command Line Interface ()AWS CLI. Para usar o seguinte comando de exemplo, faça como a seguir:
+ Substitua `MY_FUNCTION_NAME` pelo nome da sua função do Lambda.
+ `REGION`Substitua pela sua região WorkMail da Amazon AWS. As WorkMail regiões disponíveis da Amazon incluem `us-east-1` (Leste dos EUA (Norte da Virgínia)), `us-west-2` (Oeste dos EUA (Oregon)) e `eu-west-1` (Europa (Irlanda)).
+ Substitua `AWS_ACCOUNT_ID` pelo seu ID de Conta da AWS de 12 dígitos.
+ `WORKMAIL_ORGANIZATION_ID`Substitua pelo ID da sua WorkMail organização na Amazon. Você pode encontrá-lo no cartão da sua organização na página **Organizações**.



```
aws --region {{REGION}} lambda add-permission --function-name {{MY_FUNCTION_NAME}} 
--statement-id AllowWorkMail 
--action "lambda:InvokeFunction" 
--principal workmail.{{REGION}}.amazonaws.com
--source-arn arn:aws:workmail:{{REGION:AWS_ACCOUNT_ID}}:organization/{{WORKMAIL_ORGANIZATION_ID}}
```

Para obter mais informações sobre como usar o AWS CLI, consulte o [https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html).

## Configurar regras síncronas de **Executar o Lambda**
<a name="synchronous-rules"></a>

Para configurar uma regra síncrona de **Executar o Lambda**, crie uma regra de fluxo de e-mail com a ação **Executar o Lambda** e marque a caixa de seleção **Executar de forma síncrona**. Para obter mais informações sobre como criar regras de fluxo de e-mail, consulte [Criar uma regra de fluxo de e-mail](create-email-rules.md).

Para concluir a criação da regra síncrona, adicione o nome do recurso da Amazon (ARN) do Lambda e configure as opções a seguir.

****Ação de fallback****  
A ação que a Amazon WorkMail aplica se a função Lambda não for executada. Essa ação também se aplicará a todos os destinatários omitidos da resposta do Lambda se o sinalizador ** allRecipients** não for definido. A **Ação de fallback** não pode ser outra ação do Lambda.

****Tempo limite da regra** (em minutos)**  
O período durante o qual a função Lambda é repetida se a Amazon WorkMail não a invocar. A **Ação de fallback** é aplicada no final desse período.

**nota**  
Regras síncronas de **Executar o Lambda** oferecem suporte apenas à condição de destino **\***.

## Dados de eventos do Lambda
<a name="lambda-data"></a>

A função do Lambda é acionada usando os seguintes dados de evento. A apresentação dos dados varia dependendo da linguagem de programação usada para a função do Lambda.

```
{
    "summaryVersion": "2018-10-10",
    "envelope": {
        "mailFrom" : {
            "address" : "{{from@example.com}}"
        },
        "recipients" : [
           { "address" : "{{recipient1@example.com}}" },
           { "address" : "{{recipient2@example.com}}" }
        ]
    },
    "sender" : {
        "address" :  "{{sender@example.com}}"
    },
    "subject" : "{{Hello From Amazon WorkMail!}}",
    "messageId": "{{00000000-0000-0000-0000-000000000000}}",
    "invocationId": "{{00000000000000000000000000000000}}",
    "flowDirection": "INBOUND",
    "truncated": false
}
```

O JSON do evento inclui os seguintes dados:

**summaryVersion**  
O número da versão para `LambdaEventData`. Isso só é atualizado quando você faz uma alteração incompatível com versões anteriores no `LambdaEventData`.

**envelope**  
O envelope da mensagem de e-mail, que inclui os campos a seguir:    
**mailFrom**  
O endereço **De**, que normalmente corresponde ao endereço de e-mail do usuário que enviou a mensagem. Se o usuário enviou a mensagem como outro usuário ou em nome de outro usuário, o campo **mailFrom** retornará o endereço de e-mail do usuário em cujo nome a mensagem foi enviada, e não o endereço do remetente real.  
**recipients**  
Uma lista de endereços de e-mail dos destinatários. A Amazon WorkMail não faz distinção entre **To**, **CC** ou **BCC**.  
Para regras de fluxo de e-mail de entrada, essa lista inclui destinatários em todos os domínios da WorkMail organização da Amazon na qual você criou a regra. A função do Lambda é invocada separadamente para cada conversão de SMTP do remetente, e o campo dos destinatários listará os destinatários dessa conversão de SMTP. Destinatários com domínios externos não são incluídos.

**sender (remetente)**  
O endereço de e-mail do usuário que enviou a mensagem de e-mail em nome de outro usuário. Esse campo é definido somente quando uma mensagem de e-mail é enviada em nome de outro usuário.

**subject**  
A linha de assunto do e-mail. Truncado quando exceder o limite de 256 caracteres.

**messageId**  
Um ID exclusivo usado para acessar o conteúdo completo da mensagem de e-mail ao usar o SDK do Amazon WorkMail Message Flow.

**invocationId**  
O ID de uma invocação exclusiva do Lambda. Esse ID permanece o mesmo quando uma função Lambda é chamada mais de uma vez para a mesma. **LambdaEventData** Use para detectar novas tentativas e evitar duplicações.

**flowDirection**  
Indica a direção do fluxo de e-mail, **ENTRADA** ou **SAÍDA**.

**truncado**  
Aplicável ao tamanho da carga útil, não ao tamanho da linha de assunto. Quando `true`, o tamanho da carga ultrapassa o limite de 128 KB. Portanto, a lista de destinatários é truncada para ater-se ao limite.

## Esquema de resposta síncrona de **Executar o Lambda**
<a name="synchronous-schema"></a>

Quando uma regra de fluxo de e-mail com uma ação síncrona **Executar Lambda** corresponde a uma mensagem de e-mail de entrada ou saída, a Amazon WorkMail chama a função Lambda configurada e espera pela resposta antes de agir na mensagem de e-mail. A função do Lambda retorna uma resposta de acordo com um esquema predefinido que lista as ações, os tipos de ação, os parâmetros aplicáveis e os destinatários aos quais se aplica a ação.

O esquema a seguir é um exemplo de resposta síncrona de **Executar o Lambda**. As respostas variam de acordo com a linguagem de programação usada para a função do Lambda.

```
{
    "actions": [                          
      {
        "action" : {                       
          "type": "{{string}}",                 
          "parameters": { {{various}} }       
        },
        "recipients": [{{list of strings}}],      
        "allRecipients": {{boolean}}            
      }
    ]
}
```

A resposta JSON inclui os dados a seguir.

**ação**  
A ação a ser executada para os destinatários.

**type**  
O tipo de ação. Os tipos de ação não são retornados para ações assíncronas de **Executar o Lambda**.  
Os tipos de ação de regra de entrada incluem **BOUNCE**, **DROP**, **DEFAULT**, **BYPASS\_SPAM\_CHECK** e **MOVE\_TO\_JUNK**. Para obter mais informações, consulte [Ações de regras para e-mails recebidos](email-flows.md#email-flows-rule-actions).  
Os tipos de ação de regra de saída incluem **BOUNCE**, **DROP** e **DEFAULT**. Para obter mais informações, consulte [Ações de regras para e-mails enviados](email-flows.md#email-flows-rule-outbound). 

**parameters**  
Parâmetros de ação adicionais. Compatível com o tipo de ação **BOUNCE** como um objeto JSON com a chave **bounceMessage** e o valor **string**. Essa mensagem de devolução é usada para criar a mensagem de e-mail de devolução.

**recipients**  
Lista de endereços de e-mail nos quais a ação deve ser executada. É possível adicionar novos destinatários à resposta mesmo que eles não tenham sido incluídos na lista de destinatários original. Esse campo não será obrigatório se **allRecipients** for verdadeiro para uma ação.  
Quando uma ação do Lambda é chamada para e-mail de entrada, só é possível adicionar novos destinatários da sua organização. Os novos destinatários são adicionados à resposta como **BCC**.

**allRecipients**  
Quando verdadeiro, aplica a ação a todos os destinatários que não estão sujeitos a outra ação específica na resposta do Lambda.

### Limites da ação síncrona de **Executar o Lambda**
<a name="synchronous-limits"></a>

**Os seguintes limites se aplicam quando a Amazon WorkMail invoca funções do Lambda para ações síncronas do Run Lambda:** 
+ As funções do Lambda devem responder em até 15 segundos ou ser tratadas como invocações com falha.
**nota**  
O sistema repete a invocação para o intervalo de **Tempo limite da regra** especificado por você.
+ Respostas da função do Lambda de até 256 KB são permitidas.
+ Até 10 ações exclusivas são permitidas na resposta. As ações maiores que 10 estão sujeitas à **Ação de fallback**configurada. 
+ Até 500 destinatários são permitidos para funções do Lambda de saída.
+ O valor máximo de **Tempo limite da regra** é 240 minutos. Se o valor mínimo de 0 estiver configurado, não haverá novas tentativas antes que a Amazon WorkMail aplique a ação de fallback.

### Falhas na ação síncrona de **Executar o Lambda**
<a name="synchronous-failures"></a>

**Se a Amazon não WorkMail conseguir invocar sua função do Lambda devido a um erro, resposta inválida ou tempo limite do Lambda, a WorkMail Amazon tentará novamente a invocação com um atraso exponencial que diminui a taxa de processamento até que o período de tempo limite da regra seja concluído.** Depois, a **Ação de fallback** é aplicada a todos os destinatários da mensagem de e-mail. Para obter mais informações, consulte [Configurar regras síncronas de **Executar o Lambda**](#synchronous-rules).

## Exemplos de resposta síncrona de **Executar o Lambda**
<a name="synchronous-responses"></a>

Os exemplos a seguir demonstram a estrutura de respostas síncronas comuns de **Executar o Lambda**.

**Example : Remover destinatários especificados de uma mensagem de e-mail**  
O exemplo a seguir demonstra a estrutura de uma resposta síncrona de **Executar o Lambda** para remover destinatários de uma mensagem de e-mail.  

```
{
    "actions": [
      {
        "action": {
          "type": "DEFAULT"
        },
        "allRecipients": true
      },
      {
        "action": {
          "type": "DROP"
        },
        "recipients": [
          "{{drop-recipient@example.com}}"
        ]
      }
    ]
}
```

**Example : Devolver com uma mensagem de e-mail personalizada**  
O exemplo a seguir demonstra a estrutura de uma resposta síncrona de **Executar o Lambda** para devolução de uma mensagem de e-mail personalizada.  

```
{
    "actions" : [
      {
        "action" : {
          "type": 'BOUNCE',
          "parameters": {
            "bounceMessage" : "{{Email in breach of company policy.}}"
          }
        },
        "allRecipients": true
      }
    ]
}
```

**Example : Adicionar destinatários a uma mensagem de e-mail**  
O exemplo a seguir demonstra a estrutura de uma resposta síncrona de **Executar o Lambda** para adicionar destinatários à mensagem de e-mail. Isso não atualiza os campos **Para** nem **CC** da mensagem de e-mail.  

```
{
    "actions": [
      {
        "action": { 
          "type": "DEFAULT" 
        },
        "recipients": [
          "{{new-recipient@example.com}}"
         ]
      },
      {
        "action": { 
          "type": "DEFAULT" 
        },
        "allRecipients": true
      }
    ]
}
```

[Para obter mais exemplos de código para usar ao criar funções do Lambda para ações do Run **Lambda, consulte os modelos do Amazon Lambda**. WorkMail ](https://github.com/aws-samples/amazon-workmail-lambda-templates)

## Mais informações sobre o uso do Lambda com a Amazon WorkMail
<a name="lambda-more"></a>

Também é possível acessar o conteúdo completo da mensagem de e-mail que aciona a função do Lambda. Para obter mais informações, consulte [Recuperando o conteúdo da mensagem com AWS Lambda](lambda-content.md). 