我最近观察到一些非常奇怪的行为在气流(运行在Google Cloud Composer):
我更新了我的DAG,它被部署到dags目录(一个Google存储桶)。
气流报告和错误:我试图查找的GCP秘密之一(与Variable.get("varname")
)未找到:
KeyError(f'变量{key}不存在')
我检查了秘密管理器,钥匙在那里,与适当的前缀("airflow-variables-")。
这似乎很奇怪,但我没有时间去研究它。过了一会儿我又回来了,刷新了页面,这一次,气流仍然只报告了一个错误,但它抱怨的是不同的变量,而也存在。我决定每~10分钟刷新一次,并注意到每次刷新气流UI时,气流抱怨的变量有时都会发生变化。
还有一个实例,其中气流没有报告任何错误,并向我展示了我新更新的dag -我希望我有机会运行它们!
有人听说过气流做这样的事情吗?有人知道发生了什么吗?
(气流版本为2.2.3,运行在Google Cloud Composer)
在日志中挖掘,我看到了一些与检索秘密相关的超时消息。在此基础上的更多研究表明,对Variable.get
的过多调用可能会显著降低速度。查看我的代码,我意识到我的文件有许多冗余调用来检索变量。
我重构了这样一种方式,即大多数气流变量只被检索一次,它们的值被传递到需要它们的代码中。问题似乎已经解决了。