【问题标题】:What method should I send emails with airflow?我应该用气流发送电子邮件的方法是什么?
【发布时间】:2021-07-12 20:41:20
【问题描述】:

所以我对 Airflow、DAG 和整个九个都非常陌生。

所以我有一项任务需要通过电子邮件将一些数据发送给收件人列表。

现在,我有一个可以发送电子邮件的 python 函数,我打算将这个函数分配给我的 DAG 中的一个任务。

但是,在给我的任务中,我被告知管理员应该能够触发 DAG,以便其他收件人可以通过气流配置 json 传递他们的电子邮件来接收数据。我假设这意味着,airflow.cfg。

我一直在谷歌上寻求建议,但似乎大多数人在airflow.cfg 文件中设置了电子邮件部分,以便在 dag 中有错误时向他们发送电子邮件,而不是发送给收件人列表。

我想知道:

-如果我通过气流.cfg 文件传递​​电子邮件收件人列表,我仍然可以将此电子邮件发送过程分配给 DAG 中的任务吗?

【问题讨论】:

  • 嘿@nick_rinaldi,我想知道我下面的回答是否对你有帮助。

标签: email smtp airflow directed-acyclic-graphs


【解决方案1】:

您应该使用params,它是一个可以在 DAG 级别参数中定义的字典,并且在每个任务中都可以访问。这样您就可以传递收件人列表,然后使用EmailOperator 发送电子邮件。

从用户界面:

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 }}"
    )

记得之前在 Airflow 设置中配置 SMTP block。使用params查看此answer以获取详细信息和示例。

希望对你有用!

【讨论】:

  • 嘿,抱歉 Nico,是的,这回答了我的问题!谢谢!
猜你喜欢
  • 2010-11-19
  • 2013-11-30
  • 1970-01-01
  • 1970-01-01
  • 2019-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多