Pausa automática do envio de e-mails para toda a conta do Amazon SES - 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á.

Pausa automática do envio de e-mails para toda a conta do Amazon SES

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.

Parte 1: Criar uma função do IAM

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

  2. No painel de navegação, selecione Roles.

  3. Escolha Criar Perfil.

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

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

  6. Na página Add permissions (Adicionar permissões), escolha as seguintes políticas:

    • AWSLambdaBasicExecutionRole

    • Amazon SES FullAccess

    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.

    Em seguida, escolha Próximo.

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

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

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

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

  3. Escolha Create function (Criar função).

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

  5. 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_64.

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

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

  6. 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).

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

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

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

Um efeito secundário do teste de função do Lambda em Parte 2: Criar a função do Lambda é 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.

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. Substitua sending_region pelo nome da região onde você deseja reabilitar o envio de e-mails.

    aws ses update-account-sending-enabled --enabled --region sending_region
  2. 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

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.

  2. Crie um tópico seguindo as etapas indicadas no Guia do desenvolvedor do Amazon Simple Notification Service.

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

  3. Assine o tópico seguindo as etapas indicadas no Guia do desenvolvedor do Amazon Simple Notification Service.

    1. Em Protocol (Protocolo), selecione AWS Lambda.

    2. Em Endpoint, escolha a função do Lambda que você criou em Parte 2: Criar a função do Lambda.

Parte 5: criar um alarme do CloudWatch

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 que, então, executa a função do Lambda criada em Parte 2: Criar a função do Lambda.

Para criar um CloudWatch alarme
  1. Abra o CloudWatch console em https://console.aws.amazon.com/cloudwatch/.

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

  3. No painel de navegação, selecione Alarmes.

  4. Escolha Create Alarm (Criar alarme).

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

  6. 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 Next (Próximo).

  7. Execute as etapas a seguir:

    • Em Alarm Threshold (Limite do alarme), para Name (Nome), digite um nome para o alarme.

    • Em Whenever: Reputação. BounceRateou sempre: Reputação. ComplaintRate, especifique o limite que faz com que o alarme seja acionado.

      nota

      Sua conta será automaticamente analisada se sua taxa de rejeição exceder 5% ou se sua taxa de reclamação exceder 0,1%. Ao especificar a taxa de rejeição ou 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.

    Escolha Create Alarm.

Parte 6: testar a solução

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. Substitua region (região) 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 }
  2. 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

    MyAlarmSubstitua o comando anterior pelo nome do alarme em Parte 5: criar um alarme do CloudWatch que você criou e substitua a região pela região na qual você deseja pausar automaticamente o envio de e-mail.

    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 DescribeAlarmHistoryoperação.

  3. 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 }
  4. Realize os procedimentos em Parte 3: reativar o envio de e-mail para sua conta para reativar o envio de e-mail para sua conta.