airflow-scheduler - 气流 - 电子邮件通知不适用于 SES
问题描述
我创建了两个 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的配置, 但我没有收到任何电子邮件。
请查看 Job Run Stats :
这是我在 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
我已从Create My SMTP Credentials
SES 服务下获得用户名和密码。我还有一个经过验证的电子邮件地址。我的 EC2 的安全组包含所有协议、所有端口和目标的所有出站流量0.0.0.0/0
我在这里还缺少什么?是否可以为电子邮件发送过程配置/生成日志?
解决方案
推荐阅读
- google-apps-script - Google Apps 脚本 TeamDrive DriveApp.searchFolders 和 DriveApp.searchFiles 不返回任何结果
- javascript - 如何在反应上导出2个箭头功能
- python - 如何将具有值默认字典的字典字符串转换为实际字典
- mysql - mysql铸造怪异
- javascript - 进入这个方法 keyPress 但我没有看到任何控制台打印
- python - 找不到烧瓶 404
- ruby-on-rails - ActiveRecord::NoDatabaseError: FATAL: 数据库“aquastarsbackend_development”不存在
- javascript - 类型 Map 的好名字是什么
,T>? - amazon-web-services - Kubernetes多节点集群cpu不足
- flutter - 隐藏 SliverAppBar 时隐藏设备状态栏