¿Cómo configurar Airflow Send Email?

Seguí el tutorial en línea para configurar el servidor de correo electrónico SMTP en airflow.cfg como se muestra a continuación:

[email] email_backend = airflow.utils.email.send_email_smtp [smtp] # If you want airflow to send emails on retries, failure, and you want to use # the airflow.utils.email.send_email_smtp function, you have to configure an # smtp server here smtp_host = smtp.gmail.com smtp_starttls = True smtp_ssl = False # Uncomment and set the user/pass settings if you want to use SMTP AUTH # smtp_user = # smtp_password = smtp_port = 587 smtp_mail_from = myemail@gmail.com 

Y mi DAG es el siguiente:

 from datetime import datetime from airflow import DAG from airflow.operators.dummy_operator import DummyOperator from airflow.operators.python_operator import PythonOperator from airflow.operators.email_operator import EmailOperator def print_hello(): return 'Hello world!' default_args = { 'owner': 'peter', 'start_date':datetime(2018,8,11), } dag = DAG('hello_world', description='Simple tutorial DAG', schedule_interval='* * * * *', default_args = default_args, catchup=False) dummy_operator = DummyOperator(task_id='dummy_task', retries=3, dag=dag) hello_operator = PythonOperator(task_id='hello_task', python_callable=print_hello, dag=dag) email = EmailOperator( task_id='send_email', to='to@gmail.com', subject='Airflow Alert', html_content=""" 

Email Test

""", dag=dag ) email >> dummy_operator >> hello_operator

Asumí que el operador de correo electrónico se ejecutará después de los otros dos operadores y luego me enviará un correo electrónico. Pero el correo electrónico no fue enviado a mí. Realmente aprecio tu ayuda. Muchas gracias.

Mejor

Configuración del servidor SMTP para alertas de correo electrónico de flujo de air mediante Gmail :

Cree una identificación de correo electrónico desde la que desea enviar alertas sobre el fallo de DAG o si desea utilizar EmailOperator . Edite el archivo airflow.cfg para editar los detalles del smtp para el servidor de correo.

Para la demostración puede utilizar cualquier cuenta de gmail.

Crea una contraseña de la aplicación de Google para tu cuenta de gmail. [Instrucciones aquí] Esto se hace para que no uses tu contraseña original o la autenticación de 2 factores.

  1. Visita la página de contraseñas de tu aplicación . Se le puede pedir que inicie sesión en su cuenta de Google.
  2. En la parte inferior, haga clic en Seleccionar aplicación y elija la aplicación que está utilizando.
  3. Haga clic en Seleccionar dispositivo y elija el dispositivo que está utilizando.
  4. Seleccione Generar .
  5. Siga las instrucciones para ingresar la contraseña de la aplicación (el código de 16 caracteres en la barra amarilla) en su dispositivo.
  6. Seleccione Hecho .

Una vez que hayas terminado, no verás ese código de contraseña de la aplicación nuevamente. Sin embargo, verá una lista de aplicaciones y dispositivos para los que ha creado contraseñas de aplicaciones.

Edite airflow.cfg y edite la sección [smtp] como se muestra a continuación:

 [smtp] smtp_host = smtp.gmail.com smtp_starttls = True smtp_ssl = False smtp_user = YOUR_EMAIL_ADDRESS smtp_password = 16_DIGIT_APP_PASSWORD smtp_port = 587 smtp_mail_from = YOUR_EMAIL_ADDRESS 

Edite los siguientes parámetros a los valores correspondientes:

YOUR_EMAIL_ADDRESS = Tu dirección de Gmail
16_DIGIT_APP_PASSWORD = La contraseña de la aplicación generada anteriormente