Configura las notificaciones por correo electrónico

Cloud Composer 1 | Cloud Composer 2

En esta página, se explica cómo configurar los servicios de SMTP para tu entorno de Cloud Composer.

Antes de comenzar

Si tu entorno de Cloud Composer está configurado para la IP privada, asegúrate de que tenga conectividad con el extremo de la API de tu servicio de correo electrónico externo (como https://api.sendgrid.com, o tu servidor SMTP preferido).

Configura los servicios de correo electrónico de SendGrid

Para recibir notificaciones, configura tus variables de entorno con el fin de enviar correos electrónicos a través del servicio de correo electrónico de SendGrid.

  1. Si aún no lo hizo, regístrese con SendGrid en Google Cloud Console y cree una clave de API. Como desarrollador de Google Cloud, puedes comenzar con 12,000 correos electrónicos gratuitos por mes.

    Ir a la API de correo electrónico de SendGrid

  2. Configura las siguientes variables de entorno para tu entorno:

    Nombre Valor
    SENDGRID_MAIL_FROM El valor De: dirección de correo electrónico, como noreply-composer@<your-domain>.
    SENDGRID_API_KEY Tu clave de API de SendGrid.
  3. Para probar la configuración de SendGrid, sigue estos pasos:

    1. Crea un DAG de prueba que use EmailOperator.
    2. Sube el DAG a tu entorno y verifica que la tarea EmailOperator tenga éxito.
    3. Accede a SendGrid con tus credenciales de SendGrid.
    4. En la IU de SendGrid, ve a la página Actividad.
    5. Busca el correo electrónico en la lista. Deberías ver que SendGrid procesó y envió el correo electrónico.
    6. Si el correo electrónico no se procesó ni se entregó, haz lo siguiente:

      • Comprueba tus configuraciones de SendGrid.
      • Verifica que las variables de entorno SENDGRID_MAIL_FROM y SENDGRID_API_KEY sean correctas.
      • Verifica el filtro de spam en tu cliente de correo electrónico.

Configura servicios SMTP de terceros

Para enviar correos electrónicos a través de un servicio SMTP de terceros, anula la opción de configuración de Airflow email_backend y configura otros parámetros relacionados con SMTP.

Para configurar un servicio SMTP de terceros, anula las siguientes opciones de configuración de Airflow:

Sección Clave Valor
email email_backend airflow.utils.email.send_email_smtp
smtp smtp_host El nombre de host del servidor SMTP.
smtp smtp_user El nombre de usuario en el servidor SMTP.
smtp smtp_port El puerto para el servidor SMTP. El puerto 25 no está disponible. Puedes usar otros puertos, como los puertos SMTP estándar 465 y 587.
smtp smtp_password No se admite la configuración de una contraseña a través de smtp_password. Para establecer una contraseña de SMTP, siga las instrucciones que se proporcionan en Cómo configurar una contraseña de SMTP.
smtp smtp_mail_from El valor De: dirección de correo electrónico, como noreply-composer@.
smtp smtp_starttls Para mejorar la seguridad, configúralo como True.
smtp smtp_ssl Para mejorar la seguridad, configúralo como True.

Configura una contraseña SMTP para un servicio de SMTP de terceros

Mantener una contraseña SMTP en texto sin formato en el archivo de configuración de Airflow es una mala práctica de seguridad. Es por eso que Cloud Composer no admite este método. En su lugar, puedes usar otros dos métodos para configurar una contraseña de SMTP.

Usa un comando para recuperar una contraseña de SMTP

Puedes usar una anulación de configuración para especificar un comando que obtenga la contraseña de SMTP. Cuando se comunica con el servicio SMTP, Airflow usa este comando para obtener el valor de la contraseña.

Para usar este método, anula la siguiente opción de configuración de Airflow:

Sección Clave Valor
smtp smtp_password_cmd Especifica un comando que muestre la contraseña SMTP.

Usa un secreto almacenado en Secret Manager para recuperar una contraseña de SMTP

Puedes configurar Secret Manager como tu backend de secretos de Airflow.

Una vez que configures Secret Manager para tu entorno de Composer, puedes almacenar una contraseña SMTP en Secret Manager:

  1. Crea un secreto nuevo:

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

    Reemplaza SMTP_PASSWORD por tu contraseña de SMTP.

  2. Configurar Airflow para obtener la contraseña de SMTP de Secret Manager Para ello, anula la siguiente opción de configuración de Airflow:

    Sección Clave Valor
    smtp smtp_password_secret smtp-password

¿Qué sigue?