损坏的DAG:[/ home / airflow / gcs / dags / cdp / xox / cdp_box_audit.py]没有名为“ dags.box”的模块

时间:2020-02-27 21:29:02

标签: python google-cloud-composer

我最近从气流服务器转到了Google Composer, dags sub dags 配置文件的推荐文件夹结构是什么?< / p>

  • 错误消息,损坏的DAG:
[/home/airflow/gcs/dags/cdp/box/cdp_box_audit.py] No module named dags.box
  • 当前结构:
    ->dags ->box (note:project name as a folder) cdp_box_audit.py 
    ->dags ->box ->code ->python ->config dags_config.py

cdp_box_audit.py文件中,我在下面一行,但是composer无法检测到dags_config文件:

from dags.box.code.python.config import dags_config

1 个答案:

答案 0 :(得分:1)

Cloud Composer使用与Composer节点中的目录同步的Cloud Storage存储桶:

  • 存储桶路径:gs:// bucket-name / dags
  • 实例DAG的路径:/ home / airflow / gcs / dags

上载到存储桶目录中的内容将与节点中的相关目录同步。选中“ Folders in the Cloud Storage bucket”以查看其他文件夹。

要安装本地python依赖项,您需要在存储桶中创建一个特定的结构,该结构将在worker中重新创建。 here中有一个示例,其上载依赖关系如下:

dags/
  use_local_deps.py  
  dependencies/
    __init__.py
    coin_module.py

以便您可以按以下方式使用该模块:

from dependencies import coin_module

就您而言,我想您可以尝试:

dags/
  cdp_box_audit.py  # A DAG file.
  dags/
    box/
      code/
        python/
          config/
            __init__.py
            dags_config.py

我不是python专家,但是afaik,需要__init __。py。