Quero usar o Amazon Simple Email Service (Amazon SES) como host do Simple Mail Transfer Protocol (SMTP) para enviar e-mails a partir de uma tarefa do Directed Acyclic Graph (DAG) no Amazon Managed Workflows for Apache Airflow (Amazon MWAA).
Resolução
Observação: se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solução de problemas da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.
Para usar o Amazon SES como host SMTP para enviar e-mails de uma tarefa do DAG no Amazon MWAA, conclua as seguintes etapas:
- Configure o envio de e-mails com o Amazon SES.
- Crie credenciais SMTP do Amazon SES para enviar e-mails no Amazon MWAA.
Observação: as credenciais da interface SMTP são diferentes das chaves de acesso que você cria com o AWS Identity Access and Management (IAM) para um usuário SMTP.
- Anexe suas opções de configuração do Apache Airflow ao seu ambiente Amazon MWAA.
- Defina os seguintes valores para as opções de configuração:
Defina email.email_backend como airflow.utils.email.send_email_smtp.
Defina smtp.smtp_host como email-smtp.region.amazonaws.com.
Observação: substitua a região pela sua região da AWS.
Defina smtp.smtp_starttls como Falso.
Defina smtp.smtp_ssl como Verdadeiro.
Defina smtp.smtp_port como 587.
Observação: use a porta 587 para tráfego SMTP. Por padrão, a AWS bloqueia o tráfego SMTP de saída na porta 25 de todas as instâncias do Amazon Elastic Compute Cloud (Amazon EC2). Para enviar tráfego de saída na porta 25, envie uma solicitação para remover a restrição.
Defina smtp.smtp_mail_from como seu endereço de e-mail.
Observação: para obter mais informações sobre as opções de configuração anteriores, consulte [email] e [smtp] no site do Apache Airflow.
- Crie um segredo do AWS Secrets Manager para o usuário SMTP e outro para a senha. Use as credenciais SMTP do Amazon SES da etapa 2. Em seguida, configure um script de inicialização para definir as variáveis de ambiente.
Observação: é uma prática recomendada armazenar suas credenciais SMTP no Secrets Manager.
- Adicione o seguinte script startup.sh ao seu bucket do Amazon Simple Storage Service (Amazon S3):
#!/bin/sh
# Get the SMTP username and password from secrets manager
username=$(aws secretsmanager get-secret-value --secret-id airflow/variables/smtp.smtp_user --query SecretString --output text)
password=$(aws secretsmanager get-secret-value --secret-id airflow/variables/smtp.smtp_password --query SecretString --output text)
# Set the SMTP Environment variables with the username and password retrieved from Secrets Manager
export AIRFLOW__SMTP__SMTP_USER=$username
export AIRFLOW__SMTP__SMTP_PASSWORD=$password
# Print the SMTP user
echo "SMTP user is $AIRFLOW__SMTP__SMTP_USER"
Observação: seu perfil de execução do Amazon MWAA deve ter permissão para recuperar valores secretos individuais.
- Execute o comando update-environment para atualizar o ambiente Amazon MWAA com as opções de configuração de e-mail e o caminho do Amazon S3 para o script de inicialização.
Observação: quando você cria ou atualiza o ambiente, os retornos de chamada do Apache Airflow para sucesso, falha e nova tentativa usam a configuração anterior. Também é possível usar tarefas com o EmailOperator para enviar e-mails. Para obter mais informações, consulte airflow.operators.email no site do Apache Airflow.