首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在`KubernetesPodOperator`中引用DAG的执行日期?

如何在`KubernetesPodOperator`中引用DAG的执行日期?
EN

Stack Overflow用户
提问于 2019-04-22 23:39:20
回答 1查看 1K关注 0票数 4

我正在编写一个Airflow DAG,以便从API中提取数据并将其存储在我自己的数据库中。遵循We're All Using Airflow Wrong中概述的最佳实践,我将DAG编写为一系列KubernetesPodOperator,它们运行非常简单的Python函数作为Docker映像的入口点。

我试图解决的问题是,这个DAG应该只为execution_date拉取数据。

如果我使用的是PythonOperator (doc),我可以使用provide_context参数使函数可以使用执行日期。但是从the KubernetesPodOperator's documentation来看,Kubernetes运算符似乎没有provide_context所做的事情的参数。

我最好的猜测是,您可以使用arguments命令传入一个日期范围,因为它是模板化的,所以您可以像这样引用它:

代码语言:javascript
复制
my_pod_operator = KubernetesPodOperator(
    # ... other args here
    arguments=['python', 'my_script.py', '{{ ds }}'],
    # arguments continue
)

然后,您将获得开始日期,就像您通过使用sys.argv将其他参数提供给作为脚本运行的Python文件一样。

这是正确的做法吗?

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-23 16:37:50

是的,这是正确的做法。

每个运算符都有template_fieldstemplate_fields中列出的所有参数都可以渲染Jinja2模板和风流宏。

对于KubernetesPodOperator,如果您检查docs,您将发现:

代码语言:javascript
复制
template_fields = ['cmds', 'arguments', 'env_vars', 'config_file']

这意味着您可以将'{{ ds }}'传递给上面列出的四个参数中的任何一个。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55796959

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档