Pausar automaticamente o envio de e-mails para um conjunto de configurações - 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á.

Pausar automaticamente o envio de e-mails para um conjunto de configurações

Você pode configurar o Amazon SES para exportar as métricas de reputação que são específicas dos e-mails que são enviados usando um conjunto de configurações específicas do Amazon CloudWatch. Então, você pode usar essas métricas para criar alarmes do CloudWatch que são específicos desses conjuntos de configuração. Quando esses alarmes excedem certos limites, você pode pausar automaticamente o envio de e-mails que usam os conjuntos de configurações específicos, sem afetar os recursos gerais de envio de e-mails da sua conta do Amazon SES.

nota

A solução descrita nesta seção pausa o envio de e-mails para um determinado conjunto de configurações em uma única região da 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: habilitar relatórios de métricas de reputação em um conjunto de configurações

Antes de poder configurar o Amazon SES para pausar automaticamente o envio de e-mails para um conjunto de configurações, você precisa primeiro habilitar a exportação de métricas de reputação para o conjunto de configurações.

Para permitir a exportação das métricas de devolução e de reclamação no conjunto de configurações, conclua as etapas em Visualização e exportação de métricas de reputação.

Parte 2: 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 UpdateConfigurationSetSendingEnabled.

Para criar a função do IAM
  1. Abra o console do IAM em https://console.aws.amazon.com/iam/.

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

  3. Selecione Create role.

  4. Em Select type of trusted entity (Selecionar o tipo de entidade confiável), escolha AWS service (serviço).

  5. Em Choose the service that will use this role (Escolha o serviço que usará essa função), escolha Lambda. Escolha Next: Permissions (Próximo: Permissões).

  6. Na página Attach permissions policies (Vincular políticas de permissões), escolha as políticas a seguir:

    • AWS LambdaBasicExecutionRole

    • AmazonSESFullAccess

    dica

    Use a caixa de pesquisa na parte superior da lista de políticas para localizar rapidamente essas políticas.

    Selecione Next: Review (Próximo: revisão).

  7. Na página Review (Revisão), em Name (Nome), digite um nome para a função. Selecione Create role (Criar função).

Parte 3: 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 o conjunto de configurações.

Como criar a função do Lambda
  1. Abra o console do AWS Lambda 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 pausa o envio de e-mails somente para os conjuntos de configuração na região da AWS que você selecionar 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 Author from scratch (Criar do zero), execute as seguintes etapas:

    • Em Name (Nome), digite um nome para a função do Lambda.

    • Em Runtime (Tempo de execução), escolha Node.js 14x (ou a versão atualmente oferecida na lista de seleção).

    • Em Role (Função), escolha Choose an existing role (Escolha uma função existente).

    • Em Existing role (Funçao existente), escolha a função do IAM que você criou em Parte 2: criar uma função do IAM.

    Escolha Criar função.

  6. Em Function code (Código da função), no editor de código, cole o seguinte código:

    'use strict'; var aws = require('aws-sdk'); // Create a new SES object. var ses = new aws.SES(); // Specify the parameters for this operation. In this example, you pass the // Enabled parameter, with a value of false (Enabled = false disables email // sending, Enabled = true enables it). You also pass the ConfigurationSetName // parameter, with a value equal to the name of the configuration set for // which you want to pause email sending. var params = { ConfigurationSetName: ConfigSet, Enabled: false }; exports.handler = (event, context, callback) => { // Pause sending for a configuration set ses.updateConfigurationSetSendingEnabled(params, function(err, data) { if(err) { console.log(err.message); } else { console.log(data); } }); };

    Substitua ConfigSet no código anterior pelo nome do conjunto de configurações. Escolha Save (Salvar).

  7. Escolha Test (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 Create (Criar).

  8. Confirme se a barra de notificação na parte superior da página diz Execution result: succeeded. Se a função não for executada, faça o seguinte:

    • Verifique se a função do IAM que você criou em Parte 2: 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 4: reativar o envio de e-mails para o conjunto de configurações

Um efeito secundário do teste de função do Lambda em Parte 3: Criar a função do Lambda é que o envio de e-mails para o conjunto de configurações é pausado. Na maioria dos casos, não é aconselhável pausar o envio para o conjunto de configurações enquanto o alarme do CloudWatch não for acionado.

Os procedimentos nesta seção reativam o envio de e-mails para o conjunto de configurações. 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 o conjunto de configurações:

    aws ses update-configuration-set-sending-enabled \ --configuration-set-name ConfigSet \ --enabled

    No comando anterior, substitua ConfigSet pelo nome do conjunto de configurações no qual você deseja pausar o envio de e-mails.

  2. Na linha de comando, digite o comando a seguir para garantir que o envio de e-mails esteja habilitado:

    aws ses describe-configuration-set \ --configuration-set-name ConfigSet \ --configuration-set-attribute-names reputationOptions

    O comando produz saída semelhante ao seguinte exemplo:

    { "ConfigurationSet": { "Name": "ConfigSet" }, "ReputationOptions": { "ReputationMetricsEnabled": true, "SendingEnabled": true } }

    Se o valor de SendingEnabled for true, então, o envio de e-mails para o conjunto de configurações foi reativado com êxito.

Parte 5: Criar um tópico do Amazon SNS

Para o CloudWatch executar a função do Lambda quando um alarme é acionado, primeiro é necessário cria um tópico do Amazon SNS e assinar a função do Lambda para ele.

Para criaro tópico do Amazon SNS
  1. Abra o console do Amazon SNS em https://console.aws.amazon.com/sns/v3/home.

  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, escolha Topics (Tópicos).

  4. Selecione Create new topic (Criar novo tópico).

  5. Na janela Create new topic (Criar novo tópico), em Topic name (Nome do tópico), digite um nome para o tópico. Opcionalmente, você pode digitar um nome mais descritivo no campo Display name (Nome de exibição).

    Escolha Create topic (Criar tópico).

  6. Na lista de tópicos, marque a caixa ao lado do tópico que você criou na etapa anterior. No menu Actions (Ações), escolha Subscribe to topic (Assinar o tópico).

  7. Na janela Create subscription (Criar inscrição), faça as seguintes seleções:

    • Para Protocolo, selecione AWS Lambda.

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

    • Em Version or alias (Versão ou alias), escolha default (padrão).

  8. Selecione Create subscription (Criar inscrição).

Parte 6: Criar um alarme do CloudWatch

Esta seção contém procedimentos para criar um alarme no CloudWatch que é acionado quando uma métrica atinge determinado limite. Quando o alarme é acionado, ele envia uma notificação ao tópico do Amazon SNS criado em Parte 5: Criar um tópico do Amazon SNS que, então, executa a função do Lambda criada em Parte 3: Criar a função do Lambda.

Criar um alarme do CloudWatch
  1. Abra o console do CloudWatch 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 à esquerda, escolha Alarms (Alarmes).

  4. Escolha Create Alarm.

  5. Na janela Create Alarm (Criar alarme), em SES Metrics (Métricas do SES), escolha Configuration Set Metrics (Métricas de conjunto de configurações).

  6. Na coluna ses:configuration-set, localize o conjunto de configurações para o qual deseja criar um alarme. Em Metric Name (Nome da métrica), escolha uma das opções a seguir:

    • Reputation.BounceRate – Escolha essa métrica se desejar pausar o envio de e-mail para o conjunto de configurações quando o índice geral de devolução definitiva para seu conjunto de configurações ultrapassar um limite definido por você.

    • Reputation.ComplaintRate – Escolha essa métrica se desejar pausar o envio de e-mail para o conjunto de configurações quando o índice geral de reclamação para seu conjunto de configurações 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: Reputation.BounceRate ou Whenever: Reputation.ComplaintRate, especifique o limite que acionará o alarme.

      nota

      Se a taxa geral de devolução para a sua conta do Amazon SES ultrapassar 10% ou se a taxa geral de reclamação para a sua conta do Amazon SES ultrapassar 0,5%, sua conta do Amazon SES é colocada sob revisão. Quando você especifica a taxa de devolução ou reclamação que faz com que o alarme do CloudWatch seja acionado, é recomendável usar valores muito abaixo dessas taxas para impedir que sua conta seja colocada sob revisão.

    • 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 5: Criar um tópico do Amazon SNS.

    Escolha Create Alarm.

Parte 7: 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. Use a operação SetAlarmState na API do CloudWatch para alterar temporariamente o estado do alarme.

Os procedimentos nesta seção são opcionais, mas é recomendável realizá-los para verificar se a solução está configurada corretamente de modo geral.

Para testar a solução
  1. Na linha de comando, digite o comando a seguir para verificar o status de envio de e-mails para o conjunto de configurações:

    aws ses describe-configuration-set --configuration-set-name ConfigSet

    Se o envio estiver ativado para o conjunto de configurações, você verá o resultado seguir:

    { "ConfigurationSet": { "Name": "ConfigSet" }, "ReputationOptions": { "ReputationMetricsEnabled": true, "SendingEnabled": true } }

    Se o valor de SendingEnabled for true, o envio de e-mails está ativado no momento para o conjunto de configurações.

  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"

    Substitua MyAlarm no comando precedente pelo nome do alarme que você criou em Parte 6: Criar um alarme do CloudWatch.

    nota

    Ao executar esse comando, o status do alarme mudará de OK para ALARM e voltará para OK em alguns segundos. Você pode visualizar essas alterações de status na guia History (Histórico) do alarme no console do CloudWatch ou usando a operação DescribeAlarmHistory.

  3. Na linha de comando, digite o comando a seguir para verificar o status de envio de e-mails para o conjunto de configurações:

    aws ses describe-configuration-set \ --configuration-set-name ConfigSet

    Se a função do Lambda for executada com êxito, a saída exibida será semelhante ao seguinte exemplo:

    { "ConfigurationSet": { "Name": "ConfigSet" }, "ReputationOptions": { "ReputationMetricsEnabled": true, "SendingEnabled": false } }

    Se o valor de SendingEnabled for false, o envio de e-mails para o conjunto de configurações é desabilitado, indicando que a função do Lambda foi executada com êxito.

  4. Conclua as etapas em Parte 4: reativar o envio de e-mails para o conjunto de configurações para reativar o envio de e-mails para o conjunto de configurações.