我应该用什么方法发送带有气流的电子邮件?
What method should I send emails with airflow?
所以我对 Airflow、DAG 这九个方面真的很陌生。
所以我有一个任务需要将一些数据通过电子邮件发送给收件人列表。
现在,我有一个 python 功能可以发送电子邮件,我打算将此功能分配给我的 DAG 中的任务。
但是,在给我的任务中,我被告知管理员应该能够触发 DAG,这样其他收件人就可以通过气流配置 json 传递他们的电子邮件来接收数据。我假设这意味着 airflow.cfg.
我一直在谷歌上搜索建议,但似乎大多数人在他们的 airflow.cfg 文件中设置了电子邮件部分,以便在 dag 出现错误时向他们发送电子邮件,而不是发送到列表收件人。
我想知道:
-如果我通过 airflow.cfg 文件传递电子邮件收件人列表,我是否仍可以将此电子邮件发送过程分配给 DAG 中的任务?
您应该使用 params
,这是一个可以在 DAG 级别参数定义的字典,并且在每个任务中都可以访问。这样您就可以传递收件人列表,然后使用 EmailOperator 发送电子邮件。
来自UI:
from airflow.operators.email_operator import EmailOperator
email_task = EmailOperator(
to='{{ params.mail_recipients }}',
task_id='email_task',
subject='My subject',
html_content=" Templated HTML content - Today is {{ ds }}"
)
请记住之前使用 params
.
配置 SMTP block in Airflow settings. Check this 以获取详细信息和示例
希望对你有用!
所以我对 Airflow、DAG 这九个方面真的很陌生。
所以我有一个任务需要将一些数据通过电子邮件发送给收件人列表。
现在,我有一个 python 功能可以发送电子邮件,我打算将此功能分配给我的 DAG 中的任务。
但是,在给我的任务中,我被告知管理员应该能够触发 DAG,这样其他收件人就可以通过气流配置 json 传递他们的电子邮件来接收数据。我假设这意味着 airflow.cfg.
我一直在谷歌上搜索建议,但似乎大多数人在他们的 airflow.cfg 文件中设置了电子邮件部分,以便在 dag 出现错误时向他们发送电子邮件,而不是发送到列表收件人。
我想知道:
-如果我通过 airflow.cfg 文件传递电子邮件收件人列表,我是否仍可以将此电子邮件发送过程分配给 DAG 中的任务?
您应该使用 params
,这是一个可以在 DAG 级别参数定义的字典,并且在每个任务中都可以访问。这样您就可以传递收件人列表,然后使用 EmailOperator 发送电子邮件。
来自UI:
from airflow.operators.email_operator import EmailOperator
email_task = EmailOperator(
to='{{ params.mail_recipients }}',
task_id='email_task',
subject='My subject',
html_content=" Templated HTML content - Today is {{ ds }}"
)
请记住之前使用 params
.
希望对你有用!