Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
Esta página explica como configurar os serviços SMTP para o seu ambiente do Cloud Composer.
Antes de começar
Se o seu ambiente do Cloud Composer estiver configurado para IP privado, certifique-se de que tem conetividade com o ponto final da API para o seu serviço de email externo (como o
https://api.sendgrid.com
ou o seu servidor SMTP preferido).
Configure os serviços de email do SendGrid
Para receber notificações, configure as variáveis de ambiente para enviar emails através do serviço de email SendGrid.
Inscreva-se no SendGrid
Se ainda não o fez, inscreva-se no SendGrid na Google Cloud consola, clique em Gerir no fornecedor para aceder ao domínio do SendGrid e clique em Definições para obter o seu nome de utilizador e criar uma chave de API. Enquanto Google Cloud programador, pode começar com 12 000 emails gratuitos por mês.
Configure variáveis
O SendGrid usa a chave da API e um endereço de email De para enviar correio. Pode fornecer estas informações com uma das seguintes opções:
Armazene valores no Secret Manager
Para armazenar valores no Secret Manager:
Configure o Secret Manager para o seu ambiente. Certifique-se de que configura as autorizações e as opções de configuração do Airflow para o back-end de segredos.
Substitua as seguintes opções de configuração do Airflow:
Secção Chave Valor email
email_conn_id
sendgrid_default
email
email_backend
airflow.providers.sendgrid.utils.emailer.send_email
Crie um segredo para a ligação do SendGrid com o nome
airflow-connections-sendgrid_default
. Defina o valor do segredo como o URI de ligação. Por exemplo:sendgrid://<username>:<sendgrid_api_key>@smtp.sendgrid.net:587
Para mais informações sobre o armazenamento de associações no Secret Manager, consulte o artigo Faça a gestão das associações do Airflow.
Configure o endereço de email para o SendGrid. Não é possível configurar o endereço de email através de um segredo. Em alternativa, substitua a seguinte opção de configuração do Airflow:
Secção Chave Valor email
from_email
O endereço de email De, como noreply@example.com
.
Armazene valores no Airflow
Substitua as seguintes opções de configuração do Airflow:
Secção Chave Valor email
email_conn_id
sendgrid_default
email
email_backend
airflow.providers.sendgrid.utils.emailer.send_email
No Airflow, configure a associação denominada
sendgrid_default
. Especifique a chave da API Sendgrid no URI de ligação. Por exemplo:gcloud composer environments run ENVIRONMENT_NAME \ --location LOCATION \ connections add -- \ --conn-uri "sendgrid://USERNAME:SENDGRID_API_KEY@smtp.sendgrid.net:587" \ sendgrid_default
Substitua o seguinte:
ENVIRONMENT_NAME
: o nome do seu ambiente.LOCATION
: a região onde o ambiente está localizado.USERNAME
: o nome de utilizador do SendGrid.SENDGRID_API_KEY
: a chave da API SendGrid.
Configure o endereço de email para o SendGrid. Não é possível configurar o endereço de email através de um segredo. Em alternativa, substitua a seguinte opção de configuração do Airflow:
Secção Chave Valor email
from_email
O endereço de email De, como noreply@example.com
.
Teste a configuração do SendGrid
Para testar a configuração do SendGrid:
- Crie um DAG de teste que use o
EmailOperator
. Por exemplo:
- Carregue o DAG para o seu ambiente e verifique se a tarefa é concluída com êxito.
- Inicie sessão no SendGrid com as suas credenciais do SendGrid.
- Na IU do SendGrid, aceda à página Atividade.
- Pesquise o email na lista. Deverá ver que o SendGrid processou e entregou o email.
Se o email não for processado nem entregue:
- Verifique a configuração do SendGrid.
- Confirme se ativou o back-end do Gestor Secreto. Certifique-se de que concedeu autorizações adicionais e definiu substituições para as opções de configuração do Airflow.
- Verifique o filtro de spam no seu cliente de email.
Configure serviços SMTP de terceiros
Para enviar emails através de um serviço SMTP de terceiros,
substitua a opção de configuração do email_backend
Airflow
e configure outros parâmetros relacionados com o SMTP.
Para configurar um serviço SMTP de terceiros, substitua as seguintes opções de configuração do Airflow:
Secção | Chave | Valor |
---|---|---|
email |
email_backend |
airflow.utils.email.send_email_smtp |
smtp |
smtp_host |
O nome do anfitrião do servidor SMTP. |
smtp |
smtp_user |
O nome de utilizador no servidor SMTP. |
smtp |
smtp_port |
A porta do servidor SMTP. A porta 25 não está disponível. Pode usar outras portas, como as portas SMTP padrão 465 e 587. |
smtp |
smtp_password |
A definição de uma palavra-passe através de smtp_password não é suportada. Para definir uma palavra-passe SMTP, siga as instruções fornecidas em Configurar uma palavra-passe SMTP. |
smtp |
smtp_mail_from |
O endereço de email De, como noreply-composer@ . |
smtp |
smtp_starttls |
Para maior segurança, defina a opção como True . |
smtp |
smtp_ssl |
Para maior segurança, defina a opção como True . |
Configure uma palavra-passe SMTP para um serviço SMTP de terceiros
Manter uma palavra-passe SMTP em texto simples no ficheiro de configuração do Airflow é uma má prática de segurança. É por isso que o Cloud Composer não suporta este método. Em alternativa, pode usar outros dois métodos para configurar uma palavra-passe SMTP.
Usar um comando para obter a palavra-passe SMTP
Pode usar uma substituição de configuração para especificar um comando que obtenha a palavra-passe SMTP. Quando comunica com o seu serviço SMTP, o Airflow usa este comando para obter o valor da palavra-passe. Especifique um único comando, sem operadores bash, como pipes e redirecionamentos.
Para usar este método, substitua a seguinte opção de configuração do Airflow:
Secção | Chave | Valor |
---|---|---|
smtp |
smtp_password_cmd |
Especifique um comando que devolva a palavra-passe SMTP. |
Usar um segredo armazenado no Secret Manager para obter uma palavra-passe SMTP
Pode configurar o Secret Manager como o backend de segredos do Airflow.
Depois de configurar o Secret Manager para o seu ambiente do Composer, pode armazenar uma palavra-passe SMTP no Secret Manager:
Crie um novo segredo:
echo -n "SMTP_PASSWORD" | gcloud beta secrets create \ airflow-config-smtp-password \ --data-file=- \ --replication-policy=automatic
Substitua
SMTP_PASSWORD
pela sua palavra-passe SMTP.Configure o Airflow para obter a palavra-passe SMTP do Secret Manager. Para tal, substitua a seguinte opção de configuração do Airflow:
Secção Chave Valor smtp
smtp_password_secret
smtp-password