【问题标题】:Broken DAG: [/home/airflow/gcs/dags/cdp/xox/cdp_box_audit.py] No module named 'dags.box' [closed]损坏的 DAG:[/home/airflow/gcs/dags/cdp/xox/cdp_box_audit.py] 没有名为“dags.box”的模块 [关闭]
【发布时间】:2020-02-27 21:29:02
【问题描述】:

我最近从气流服务器转移到谷歌作曲家,dagssub dags配置文件的推荐文件夹结构是什么?

  • 错误消息,获取 Broken 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 文件中,我有以下行,但作曲家无法检测到 dags_config 文件:

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

【问题讨论】:

    标签: python google-cloud-composer


    【解决方案1】:

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

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

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

    要安装本地 python 依赖项,您需要在存储桶内创建一个特定的结构,该结构将在工作人员中重新创建。 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 专家,但是我需要 __init__.py。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-18
      • 1970-01-01
      相关资源
      最近更新 更多