Sor*_*ani 3 google-cloud-platform google-kubernetes-engine airflow google-cloud-composer
Airflow 允许您将 dag 依赖的依赖项(外部 python 代码到 dag 代码)放在 dag 文件夹中。这意味着这些外部 python 代码中的任何组件/成员或类都可用于 dag 代码。
但是,在执行此操作时(在云组合环境的 GCS dag 文件夹中),依赖项的组件对 dag 不可用。Airflow Web UI 中显示类似于以下内容的错误:Broken DAG: [/home/airflow/gcs/dags/....py] No module named tester. 其中 tester 是 dags 文件夹中的一个单独的 python 文件。
在使用 Google 的 SDK(运行实际的 Airflow 命令)测试这些任务时,任务运行良好,但似乎在 Kubernettes 中的某个地方创建了这些容器作业,它似乎也没有接管依赖项。
我意识到 Cloud Compose 处于测试阶段,但我想知道我是否做错了什么。
小智 5
您应该将模块放在一个单独的文件夹中,该文件夹包含一个 __init__.py 文件(Airflow 不喜欢其顶级 DAGs 目录中的 __init__.py 文件)。
例如,如果您有以下目录结构:
dags/
my_dag.py
my_deps/
__init__.py
dep_a.py
dep_b.py
Run Code Online (Sandbox Code Playgroud)
你可以写from my_deps import dep_a, dep_b
在my_dag.py
.
归档时间: |
|
查看次数: |
5082 次 |
最近记录: |