气流-电子邮件通知不适用于SES

时间:2020-01-09 05:20:58

标签: airflow airflow-scheduler airflow-operator

我创建了两个Dag来检查Airflow的电子邮件配置。 基本上,我想在工作失败时获得电子邮件警报。 我也通过以下链接进行了操作,但是很遗憾,我无法解决问题。

DAG之一:(成功工作)

from datetime import datetime
from datetime import timedelta
from airflow import DAG
from airflow.operators.dummy_operator import DummyOperator
from airflow.operators.python_operator import PythonOperator

default_args = {
    'owner': 'Airflow',
    'depends_on_past': False,
    'start_date': datetime(2015, 6, 1),
    'email': ['firstnamelastname@company.com','firstnamelastname@company.com'],
    'email_on_failure': True,
    'email_on_retry': True,
    'retries': 1,
    'retry_delay': timedelta(seconds=5),
    'email_on_success': True
    # 'queue': 'bash_queue',
    # 'pool': 'backfill',
    # 'priority_weight': 10,
    # 'end_date': datetime(2016, 1, 1),
}


def print_hello():
    return 'Hello world!'

dag = DAG('success', description='Simple tutorial DAG',
          schedule_interval='0 12 * * *',default_args=default_args,
          start_date=datetime(2017, 3, 20), 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)

dummy_operator >> hello_operator

DAG 2 :(失败的工作)

from datetime import datetime
from datetime import timedelta
from airflow import DAG
from airflow.operators.dummy_operator import DummyOperator
from airflow.operators.python_operator import PythonOperator

default_args = {
    'owner': 'Airflow',
    'depends_on_past': False,
    'start_date': datetime(2015, 6, 1),
    'email': ['firstnamelastname@company.com','firstnamelastname@company.com'],
    'email_on_failure': True,
    'email_on_retry': True,
    'retries': 1,
    'retry_delay': timedelta(seconds=5),
    'email_on_success': True
    # 'queue': 'bash_queue',
    # 'pool': 'backfill',
    # 'priority_weight': 10,
    # 'end_date': datetime(2016, 1, 1),
}


def print_hello():
    xxxx
    return 'Hello world!'

dag = DAG('success', description='Simple tutorial DAG',
          schedule_interval='0 12 * * *',default_args=default_args,
          start_date=datetime(2017, 3, 20), 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)

dummy_operator >> hello_operator

我原本希望收到有关这两项工作的电子邮件。由于这两个作业均包含 email_on_success email_on_failure 的配置 但是我没有收到任何电子邮件。

请查看作业运行统计信息:

enter image description here

enter image description here

这是我在airflow.cfg下的 SMTP配置

smtp_host = email-smtp.ap-south-1.amazonaws.com
smtp_starttls = True
smtp_ssl = False
# Uncomment and set the user/pass settings if you want to use SMTP AUTH
smtp_user = XXXXXXXXXXXXXXXXXXX
smtp_password = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
smtp_port = 587
smtp_mail_from = firstnamelastname@company.com 

我已经从SES服务下的Create My SMTP Credentials获取了用户名和密码。我还有一个经过验证的电子邮件地址。我的EC2的安全组包含所有协议,所有端口和目标0.0.0.0/0

的所有出站流量

我在这里还想念什么? 可以为电子邮件发送过程配置/生成日志吗?

0 个答案:

没有答案