

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

# Pausa automática do envio de e-mails para toda a conta do Amazon SES
<a name="monitoring-sender-reputation-pausing-account"></a>

Os procedimentos nesta seção explicam as etapas para configurar o Amazon SES, o Amazon SNS CloudWatch, a Amazon e pausar automaticamente AWS Lambda o envio de e-mails para sua conta do Amazon SES em uma única região. AWS Se você envia e-mails de várias regiões, repita os procedimentos desta seção para cada região na qual deseja implementar esta solução.

**Topics**
+ [Parte 1: Criar uma função do IAM](#monitoring-sender-reputation-pausing-account-part-1)
+ [Parte 2: Criar a função do Lambda](#monitoring-sender-reputation-pausing-account-part-2)
+ [Parte 3: reativar o envio de e-mail para sua conta](#monitoring-sender-reputation-pausing-account-part-3)
+ [Parte 4: criar um tópico e uma assinatura do Amazon SNS](#monitoring-sender-reputation-pausing-account-part-4)
+ [Parte 5: Criar um CloudWatch alarme](#monitoring-sender-reputation-pausing-account-part-5)
+ [Parte 6: testar a solução](#monitoring-sender-reputation-pausing-account-part-6)

## Parte 1: Criar uma função do IAM
<a name="monitoring-sender-reputation-pausing-account-part-1"></a>

A primeira etapa para configurar a pausa automática de envio de e-mail é criar uma função do IAM que possa executar a operação de API `UpdateAccountSendingEnabled`.

**Para criar perfil do IAM**

1. Abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. No painel de navegação, escolha **Perfis**.

1. Escolha **Criar Perfil**.

1. Na página **Selecionar entidade confiável**, escolha **Serviço da AWS ** para **Tipo de entidade confiável**.

1. Em **Use case** (Caso de uso), escolha **Lambda** e **Next** (Próximo).

1. Na página **Add permissions** (Adicionar permissões), escolha as seguintes políticas:
   + **AWSLambdaBasicExecutionRole**
   + **Amazon SESFull Access**
**dica**  
Use a caixa de pesquisa em **Permission policies** (Políticas de permissão) para localizar rapidamente essas políticas, mas observe que, depois de pesquisar e selecionar a primeira política, você deverá escolher **Clear filters** (Limpar filtros) antes de pesquisar e selecionar a segunda política.

   Escolha **Próximo**.

1. Na página **Name, review, and create** (Fornecer nome, revisar e criar), em **Role details** (Detalhes da função), insira um nome significativo para a política no campo **Role name** (Nome da função).

1. Verifique se as duas políticas selecionadas estão listadas na tabela **Permissions policy summary** (Resumo de políticas de permissões) e escolha **Create role** (Criar função).

## Parte 2: Criar a função do Lambda
<a name="monitoring-sender-reputation-pausing-account-part-2"></a>

Depois de criar uma função do IAM, você pode criar a função do Lambda que pausa o envio de e-mails para sua conta.

**Para criar a função do Lambda**

1. Abra o AWS Lambda console em [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1. Use o seletor de regiões para escolher a região onde você deseja implantar esta função do Lambda.
**nota**  
Essa função só pausa o envio de e-mails na AWS região selecionada nesta etapa. Se você envia e-mails de mais de uma região, repita os procedimentos desta seção para cada região na qual deseja pausar automaticamente o envio de e-mails.

1. Escolha **Create function** (Criar função).

1. Em **Create function** (Criar função), escolha **Author from scratch** (Criar do zero).

1. Em **Basic information** (Informações básicas), execute as seguintes etapas:
   + Em **Function name** (Nome da função), digite um nome para a função do Lambda.
   + Em **Runtime**, escolha **Node.js 18x** (ou a versão atualmente oferecida na lista de seleção).
   + Em **Architecture** (Arquitetura), mantenha o padrão pré-selecionado, **x86\$164**.
   + Em Permissions (Permissões), amplie **Change default execution role** (Alterar função de execução padrão) e escolha **Use an existing role (Usar uma função existente)**.
   + Clique no interior da caixa de lista **Existing role** (Função existente) e escolha a função do IAM criada em [Parte 1: Criar uma função do IAM](#monitoring-sender-reputation-pausing-account-part-1).

   Em seguida, selecione **Create function** (Criar função).

1. Em **Code source** (Fonte do código), no editor de código, cole o seguinte código:

   ```
   'use strict';
   
   
   const { SES } = require("@aws-sdk/client-ses")
   
   // Create a new SES object. 
   
   var ses = new SES({});                  
   
   // Specify the parameters for this operation. In this case, there is only one
   // parameter to pass: the Enabled parameter, with a value of false
   // (Enabled = false disables email sending, Enabled = true enables it).
   var params = {
       Enabled: false
   };
   
   exports.handler = (event, context, callback) => {
       // Pause sending for your entire SES account
       ses.updateAccountSendingEnabled(params, function(err, data) {
           if(err) {
               console.log(err.message);
           } else {
               console.log(data);
           }
       });
   };
   ```

   Selecione **Deploy (Implantar)**.

1. Escolha **Testar**. Se a janela **Configure test event** (Configurar evento de teste) for exibida, digite um nome no campo **Event name** (Nome do evento) e escolha **Save** (Salvar).

1. Expanda a caixa suspensa **Test** (Teste), selecione o nome do evento recém-criado e escolha **Test** (Teste).

1. A guia **Execution results** (Resultados da execução) será exibida: logo abaixo dela e à direita, verifique se `Status: Succeeded` é exibido. Se a função não for executada, faça o seguinte:
   + Verifique se a função do IAM que você criou em [Parte 1: Criar uma função do IAM](#monitoring-sender-reputation-pausing-account-part-1) contém as políticas corretas.
   + Verifique se o código da função do Lambda não contém nenhum erro. O editor de código do Lambda automaticamente destaca os erros de sintaxe e outros problemas potenciais.

## Parte 3: reativar o envio de e-mail para sua conta
<a name="monitoring-sender-reputation-pausing-account-part-3"></a>

Um efeito secundário do teste de função do Lambda em [Parte 2: Criar a função do Lambda](#monitoring-sender-reputation-pausing-account-part-2) é que o envio de e-mail para sua conta do Amazon SES é pausado. Na maioria dos casos, você não deseja pausar o envio da sua conta até que o CloudWatch alarme seja acionado.

Os procedimentos nesta seção reabilitam o envio de e-mail para sua conta do Amazon SES. Para concluir esses procedimentos, você deve instalar e configurar a AWS Command Line Interface. Para obter mais informações, consulte o [Guia do usuário do AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/).

**Para reativar o envio de e-mail**

1. Na linha de comando, digite o comando a seguir para reabilitar o envio de e-mails para a sua conta. *sending\$1region*Substitua pelo nome da região na qual você deseja reativar o envio de e-mail.

   ```
   aws ses update-account-sending-enabled --enabled --region sending_region
   ```

1. Na linha de comando, digite o seguinte comando para verificar o status de envio de e-mails para a sua conta:

   ```
   aws ses get-account-sending-enabled --region sending_region
   ```

   Se visualizar a saída a seguir, isso significa que conseguiu reativar o envio de e-mail para sua conta:

   ```
   {
       "Enabled": true 
   }
   ```

## Parte 4: criar um tópico e uma assinatura do Amazon SNS
<a name="monitoring-sender-reputation-pausing-account-part-4"></a>

 CloudWatch Para executar sua função Lambda quando um alarme é acionado, você deve primeiro criar um tópico do Amazon SNS e inscrever a função Lambda nele.

**Como criar o tópico do Amazon SNS e assiná-lo com a função do Lambda**

1. [Abra o console do Amazon SNS em https://console.aws.amazon.com/sns/ v3/home.](https://console.aws.amazon.com/sns/v3/home)

1. [Crie um tópico](https://docs.aws.amazon.com/sns/latest/dg/sns-create-topic.html) seguindo as etapas indicadas no *Guia do desenvolvedor do Amazon Simple Notification Service*.

   1. O **Type** (Tipo) deve ser **Standard** (Comum) (não **FIFO**).

1. [Assine o tópico](https://docs.aws.amazon.com/sns/latest/dg/sns-create-subscribe-endpoint-to-topic.html) seguindo as etapas indicadas no *Guia do desenvolvedor do Amazon Simple Notification Service*.

   1. Em **Protocolo**, selecione **AWS Lambda**.

   1. Em **Endpoint**, escolha a função do Lambda que você criou em [Parte 2: Criar a função do Lambda](#monitoring-sender-reputation-pausing-account-part-2).

## Parte 5: Criar um CloudWatch alarme
<a name="monitoring-sender-reputation-pausing-account-part-5"></a>

Esta seção contém procedimentos para criar um alarme CloudWatch que é acionado quando uma métrica atinge um determinado limite. Quando o alarme é acionado, ele envia uma notificação ao tópico do Amazon SNS criado em [Parte 4: criar um tópico e uma assinatura do Amazon SNS](#monitoring-sender-reputation-pausing-account-part-4) que, então, executa a função do Lambda criada em [Parte 2: Criar a função do Lambda](#monitoring-sender-reputation-pausing-account-part-2).

**Para criar um CloudWatch alarme**

1. Abra o CloudWatch console em [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Use o seletor de regiões para escolher a região onde você deseja pausar automaticamente o envio de e-mails.

1. No painel de navegação, selecione **Alarmes**.

1. Escolha **Create Alarm** (Criar alarme).

1. Na janela **Create Alarm** (Criar alarme), em **SES Metrics** (Métricas do SES), escolha **Account Metrics** (Métricas da conta).

1. Em **Metric Name** (Nome da métrica), escolha uma das opções a seguir:
   + **Reputação. BounceRate** — Escolha essa métrica se quiser pausar o envio de e-mails para sua conta quando a taxa geral de rejeição total de sua conta ultrapassar um limite definido por você.
   + **Reputação. ComplaintRate** — Escolha essa métrica se quiser pausar o envio de e-mails para sua conta quando a taxa geral de reclamações de sua conta ultrapassar um limite definido por você.

   Escolha **Próximo**.

1. Execute as etapas a seguir:
   + Em **Alarm Threshold** (Limite do alarme), para **Name** (Nome), digite um nome para o alarme.
   + Em **Whenever: Reputação. BounceRate**ou **sempre: Reputação. ComplaintRate**, especifique o limite que faz com que o alarme seja acionado.
**nota**  
Sua conta será automaticamente colocada sob análise se a taxa de devolução ultrapassar 5% ou se a taxa de reclamações ultrapassar 0,1%. Quando você especifica a taxa de rejeição ou de reclamação que faz com que o CloudWatch alarme seja acionado, recomendamos que você use valores abaixo dessas taxas para evitar que sua conta seja analisada.
   + Em **Actions** (Ações), em **Whenever this alarm** (Sempre que este alarme), escolha **State is ALARM** (Estado é ALARME). Em **Send notification to (Enviar e-mail para)**, escolha o tópico do Amazon SNS que você criou em [Parte 4: criar um tópico e uma assinatura do Amazon SNS](#monitoring-sender-reputation-pausing-account-part-4).

   Escolha **Criar Alarm**.

## Parte 6: testar a solução
<a name="monitoring-sender-reputation-pausing-account-part-6"></a>

Agora você pode testar o alarme para verificar se ele executa a função do Lambda ao entrar no estado `ALARM`. Você pode usar a operação de API `SetAlarmState` para alterar temporariamente o estado do alarme.

Os procedimentos nesta seção são opcionais, mas é recomendável realizá-los para garantir a configuração correta da solução de maneira geral.

1. Na linha de comando, digite o comando a seguir para verificar o status de envio de e-mails para a sua conta. *region*Substitua pelo nome da região.

   ```
   aws ses get-account-sending-enabled --region region
   ```

   Se o envio estiver ativado para sua conta, você verá a saída a seguir:

   ```
   {
       "Enabled": true 
   }
   ```

1. Na linha de comando, digite o comando a seguir para alterar temporariamente o estado do alarme para `ALARM`: **aws cloudwatch set-alarm-state --alarm-name *MyAlarm* --state-value ALARM --state-reason "Testing execution of Lambda function" --region *region***

   *MyAlarm*Substitua o comando anterior pelo nome do alarme que você criou e *region* substitua pela região na qual você deseja pausar automaticamente o envio de e-mail. [Parte 5: Criar um CloudWatch alarme](#monitoring-sender-reputation-pausing-account-part-5)
**nota**  
Ao executar esse comando, o status do alarme mudará de `OK` para `ALARM` e voltará para `OK` em alguns segundos. Você pode ver essas alterações de status na guia **Histórico** do alarme no CloudWatch console ou usando a [DescribeAlarmHistory](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DescribeAlarmHistory.html)operação.

1. Na linha de comando, digite o comando a seguir para verificar o status de envio de e-mails para a sua conta.

   ```
   aws ses get-account-sending-enabled --region region
   ```

   Se a função do Lambda for executada com êxito, você verá o seguinte resultado:

   ```
   {
       "Enabled": false
   }
   ```

1. Realize os procedimentos em [Parte 3: reativar o envio de e-mail para sua conta](#monitoring-sender-reputation-pausing-account-part-3) para reativar o envio de e-mail para sua conta.