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.
Tópicos nesta seçã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
Abra o console do IAM em https://console.aws.amazon.com/iam/
. -
No painel de navegação, selecione Roles.
-
Escolha Criar Perfil.
-
Na página Selecionar entidade confiável, escolha Serviço da AWS para Tipo de entidade confiável.
-
Em Use case (Caso de uso), escolha Lambda e Next (Próximo).
-
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.
-
-
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).
-
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
Abra o AWS Lambda console em https://console.aws.amazon.com/lambda/
. -
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.
-
Escolha Create function (Criar função).
-
Em Create function (Criar função), escolha Author from scratch (Criar do zero).
-
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).
-
-
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).
-
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).
-
Expanda a caixa suspensa Test (Teste), selecione o nome do evento recém-criado e escolha Test (Teste).
-
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
-
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
-
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
Abra o console do Amazon SNS em https://console.aws.amazon.com/sns/v3/home
. -
Crie um tópico seguindo as etapas indicadas no Guia do desenvolvedor do Amazon Simple Notification Service.
-
O Type (Tipo) deve ser Standard (Comum) (não FIFO).
-
-
Assine o tópico seguindo as etapas indicadas no Guia do desenvolvedor do Amazon Simple Notification Service.
-
Em Protocol (Protocolo), selecione AWS Lambda.
-
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
Abra o CloudWatch console em https://console.aws.amazon.com/cloudwatch/
. -
Use o seletor de regiões para escolher a região onde você deseja pausar automaticamente o envio de e-mails.
-
No painel de navegação, selecione Alarmes.
-
Escolha Create Alarm (Criar alarme).
-
Na janela Create Alarm (Criar alarme), em SES Metrics (Métricas do SES), escolha Account Metrics (Métricas da conta).
-
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).
-
-
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.
-
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 }
-
Na linha de comando, digite o comando a seguir para alterar temporariamente o estado do alarme para
ALARM
: aws cloudwatch set-alarm-state --alarm-nameMyAlarm
--state-value ALARM --state-reason "Testing execution of Lambda function" --regionregion
MyAlarm
Substitua o comando anterior pelo nome do alarme em Parte 5: criar um alarme do CloudWatch que você criou e substitua aregiã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
paraALARM
e voltará paraOK
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. -
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 }
-
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.