Configurar o AWS Lambda para o Amazon WorkMail
Use a ação Executar o Lambda em regras de fluxo de e-mails de entrada e saída para transmitir as mensagens de e-mail que correspondem às regras para uma função do AWS Lambda para processamento.
Escolha entre as configurações a seguir para uma ação Executar o Lambda no 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 Recuperar conteúdo de mensagens com o AWS Lambda. Para obter mais informações sobre eventos de e-mail, consulte Dados de eventos do Lambda.
Para obter mais informações sobre as regras de fluxo de e-mails enviados e recebidos, consulte Gerenciar fluxos de e-mail. Para obter mais informações sobre o Lambda, consulte o Manual do desenvolvedor do AWS Lambda.
nota
Atualmente, as regras de fluxo de e-mails do Lambda fazem referência somente a funções do Lambda na mesma região da AWS e Conta da AWS em que a organização do Amazon WorkMail foi configurada.
Conceitos básicos do AWS Lambda para o Amazon WorkMail
Para começar a usar o AWS Lambda com o Amazon WorkMail, recomendamos implantar a função do Lambda WorkMail Hello World
Se você escolher criar sua própria função do Lambda, deverá configurar as permissões usando a AWS Command Line Interface (AWS CLI). Para usar o seguinte comando de exemplo, faça como a seguir:
-
Substitua
MY_FUNCTION_NAMEpelo nome da sua função do Lambda. -
Substitua
REGIONpela sua região da AWS do Amazon WorkMail. As regiões disponíveis do Amazon WorkMail incluemus-east-1(Leste dos EUA (Norte da Virgínia)),us-west-2(Oeste dos EUA (Oregon)) eeu-west-1(Europa (Irlanda)). -
Substitua
AWS_ACCOUNT_IDpelo seu ID de Conta da AWS de 12 dígitos. -
Substitua
WORKMAIL_ORGANIZATION_IDpelo ID da organização do Amazon WorkMail. Você pode encontrá-lo no cartão da sua organização na página Organizações.
aws --regionREGIONlambda add-permission --function-nameMY_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 Manual do usuário do AWS Command Line Interface .
Configurar regras síncronas de Executar o Lambda
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.
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 Amazon WorkMail será aplicada se a função do Lambda falhar ao ser 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 do Lambda é repetida se ela falhar ao ser invocada pelo Amazon WorkMail. 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 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 noLambdaEventData. - 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. O Amazon WorkMail não faz distinção entre To, CC ou BCC.
nota
Em caso de regras de fluxo de e-mails de entrada, essa lista inclui destinatários de todos os domínios da organização do Amazon WorkMail na qual a regra é criada. 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 de fluxo de mensagens do Amazon WorkMail.
- invocationId
-
O ID de uma invocação exclusiva do Lambda. Esse ID permanece o mesmo quando uma função do Lambda é chamada mais de uma vez para o mesmo 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
Quando uma regra de fluxo de e-mail com uma ação síncrona de Executar o Lambda corresponde a uma mensagem de e-mail de entrada ou saída, o Amazon WorkMail chama a função do Lambda configurada e aguarda a resposta antes de executar uma ação 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.
- action
-
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.
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.
- 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.
nota
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
Os limites a seguir se aplicam quando o Amazon WorkMail invoca funções do Lambda para ações síncronas de Executar o 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 fallbackconfigurada.
-
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 de o Amazon WorkMail aplicar a ação de fallback.
Falhas na ação síncrona de Executar o Lambda
Se o Amazon WorkMail não puder invocar sua função do Lambda devido a um erro, resposta inválida ou tempo limite do Lambda, o Amazon WorkMail tentará novamente a invocação com um recuo 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 .
Exemplos de resposta síncrona de Executar o Lambda
Os exemplos a seguir demonstram a estrutura de respostas síncronas comuns de Executar o Lambda.
exemplo : 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"
]
}
]
}exemplo : 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
}
]
}exemplo : 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 a serem usados ao criar funções do Lambda para ações de Executar o Lambda, consulte Modelos de Lambda do Amazon WorkMail
Mais informações sobre o uso do Lambda com o Amazon WorkMail
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 Recuperar conteúdo de mensagens com o AWS Lambda.