Configurar notificações por e-mail

Cloud Composer 1 | Cloud Composer 2

Nesta página, você aprenderá a configurar serviços SMTP em seu ambiente do Cloud Composer.

Antes de começar

Se o ambiente do Cloud Composer estiver configurado para IP particular, verifique se ele tem conectividade com o endpoint da API para seu serviço de e-mail externo (como https://api.sendgrid.com, por exemplo). ou o servidor SMTP de sua preferência).

Configurar serviços de e-mail do SendGrid

Para receber notificações, configure as variáveis de ambiente para enviar e-mails por meio do serviço SendGrid.

  1. Inscreva-se no SendGrid no Console do Google Cloud e crie uma chave de API, caso ainda não tenha feito isso. Sendo um desenvolvedor do Google Cloud, é possível começar com 12.000 e-mails gratuitos por mês.

    Acessar a API SendGrid Email

  2. Defina as variáveis de ambiente a seguir para seu ambiente:

    Nome Valor
    SENDGRID_MAIL_FROM O endereço de e-mail "De:", como noreply-composer@<your-domain>.
    SENDGRID_API_KEY A chave da API SendGrid.
  3. Para testar a configuração do SendGrid:

    1. crie um DAG de teste que use EmailOperator;
    2. Faça upload do DAG para o ambiente e verifique se a tarefa EmailOperator é bem-sucedida.
    3. faça login no SendGrid com as respectivas credenciais;
    4. na IU do SendGrid, acesse a página "Activity";
    5. procure o e-mail na lista. Você verá que o SendGrid processou e entregou o e-mail.
    6. se o e-mail não tiver sido processado e entregue:

      • verifique as configurações do SendGrid;
      • Verifique se as variáveis de ambiente SENDGRID_MAIL_FROM e SENDGRID_API_KEY estão corretas.
      • verifique o filtro de spam no seu cliente de e-mail.

Configurar serviços SMTP de terceiros

Para enviar e-mails por meio de um serviço SMTP de terceiros, modifique a opção de configuração email_backend do Airflow e configure outros parâmetros relacionados ao SMTP.

Para configurar um serviço SMTP de terceiros, modifique as seguintes opções de configuração do Airflow:

Seção Chave Valor
email email_backend airflow.utils.email.send_email_smtp
smtp smtp_host O nome do host do servidor SMTP.
smtp smtp_user O nome de usuário no servidor SMTP.
smtp smtp_port A porta do servidor SMTP. A porta 25 não está disponível. É possível usar outras portas, como as portas SMTP padrão 465 e 587.
smtp smtp_password Não é possível definir uma senha por smtp_password. Para definir uma senha SMTP, siga as instruções em Como configurar uma senha SMTP.
smtp smtp_mail_from O endereço de e-mail "De:", como noreply-composer@.
smtp smtp_starttls Para mais segurança, defina como True.
smtp smtp_ssl Para mais segurança, defina como True.

Configurar uma senha SMTP para um serviço SMTP de terceiros

Manter uma senha SMTP em texto simples no arquivo de configuração do Airflow é uma prática de segurança ineficiente. É por isso que o Cloud Composer não é compatível com esse método. Em vez disso, é possível usar dois outros métodos para configurar uma senha SMTP.

Como usar um comando para recuperar uma senha SMTP

É possível usar uma substituição de configuração para especificar um comando que recebe a senha SMTP. Ao se comunicar com o serviço SMTP, o Airflow usa esse comando para receber o valor da senha.

Para usar esse método, modifique a seguinte opção de configuração do Airflow:

Seção Chave Valor
smtp smtp_password_cmd Especifique um comando que retorne a senha SMTP.

Como usar um secret armazenado no Gerenciador de secrets para recuperar uma senha SMTP

É possível configurar o Secret Manager como back-end de secrets do Airflow.

Depois de configurar o Secret Manager para seu ambiente do Composer, é possível armazenar uma senha SMTP no Secret Manager:

  1. Crie um novo secret:

    echo -n "SMTP_PASSWORD" | gcloud beta secrets create \
      airflow-variables-smtp-password \
      --data-file=- \
      --replication-policy=automatic
    

    Substitua SMTP_PASSWORD pela senha do SMTP.

  2. Configure o Airflow para receber a senha SMTP do Secret Manager. Para fazer isso, modifique a seguinte opção de configuração do Airflow:

    Seção Chave Valor
    smtp smtp_password_secret smtp-password

A seguir