【发布时间】:2021-05-11 19:15:42
【问题描述】:
我有一个 Airflow DAG 执行调用 GKEPodOperator,其中运行 python 脚本来处理数据并将数据加载到 BigQuery。 GKEPodOperator 是否可以像 python 列表或字典一样从执行的脚本返回 DAG,以便我可以利用它来使用 DAGOperator 编写自定义电子邮件?
【问题讨论】:
标签: google-cloud-platform airflow
我有一个 Airflow DAG 执行调用 GKEPodOperator,其中运行 python 脚本来处理数据并将数据加载到 BigQuery。 GKEPodOperator 是否可以像 python 列表或字典一样从执行的脚本返回 DAG,以便我可以利用它来使用 DAGOperator 编写自定义电子邮件?
【问题讨论】:
标签: google-cloud-platform airflow
第一个 GKEPodOperator 已弃用。你应该使用GKEStartPodOperator。
与其他运算符一样,您可以使用 Xcom 在任务之间传递值。请注意,GKEStartPodOperator 继承自 KubernetesPodOperator,因此 xcom 机制与其他运算符不同。它适用于启动边车容器。你可以阅读更多关于它的例子here。
现在您已将所需的值存储为 XCOM(作为字符串),您希望将其拉出,以便在自定义运算符中使用它:
Airflow >= 2.1.0(尚未发布)
原生支持将 xcom 直接转换为原生 python 对象。见PR。您需要设置render_template_as_native_obj=True。您可以在文档中了解更多信息:Rendering Fields as Native Python Objects
Airflow < 2.1.0:
在后续任务中,您需要提取 xcom 值并将其转换为您想要的任何 Python 对象。你可以看到它的例子here。
【讨论】: