Airflow Cloud composer将自定义插件导入所有现有DAG

Airflow Cloud composer将自定义插件导入所有现有DAG,airflow,google-cloud-composer,Airflow,Google Cloud Composer,我正在使用Cloud Composer计划多个DAG。这些DAG是使用自定义插件动态构建的 我想知道当添加/修改一个涉及所有DAG的插件时如何进行(假设它为每个DAG添加了一个新任务) 执行此操作时是否需要暂停所有正在运行的DAG 到目前为止,我在添加/修改插件时所做的是: 将插件上载到Composer集群的插件存储桶中(使用gcloud Composer命令) 在Airflow config(气流配置)中执行虚拟更新->将虚拟值添加到Airflow.cfg(使用gcloud composer

我正在使用Cloud Composer计划多个DAG。这些DAG是使用自定义插件动态构建的

我想知道当添加/修改一个涉及所有DAG的插件时如何进行(假设它为每个DAG添加了一个新任务)

执行此操作时是否需要暂停所有正在运行的DAG

到目前为止,我在添加/修改插件时所做的是:

  • 将插件上载到Composer集群的
    插件
    存储桶中(使用gcloud Composer命令)
  • 在Airflow config(气流配置)中执行虚拟更新->将虚拟值添加到Airflow.cfg(使用gcloud composer命令)
我这样做是为了迫使DAG暂停,一旦更新完成,DAG就会恢复,但是会有新插件,因此会有新任务(或者如果它不在这个DAG运行中,那么它就是下一个)。它没用吗

感谢您的帮助。

如中所述,查看DAG和插件代码的Airflow Web服务器运行在Google托管租户项目中,而实际运行DAG和插件代码的Airflow workers直接运行在您的项目中

在中放置DAG/插件时,Airflow Web服务器(属于租户项目)将验证代码并更新Airflow数据库中的任何新计划更改

同时,气流调度器(在项目中)请求气流数据库运行下一个DAG,并通知气流工作人员执行计划的工作。然后,气流工作者(在您的项目中)从Composer bucket中获取DAG/插件代码,并编译它们以运行特定任务

因此,Airflow Web服务器和Airflow workers会在不同的时间分别读取对DAGs/插件代码所做的任何更新

  • 如果您没有在Airflow Web服务器中看到新代码,那么当工作人员在新任务运行时获取新代码时,他们仍应获取新代码

  • 因此,您不必重新启动Composer,工作人员就可以获取更改

  • 在任务执行期间,不能强制工作人员获取并重新编译新代码

有两种方法可以刷新Airflow Web服务器,以便在其未更新时查看插件代码的更改:

  • 通过中的“气流配置覆盖”选项卡,将
    [webserver]
    部分中的
    reload\on\u plugin\u change
    属性设置为
    True

  • 或者,您可以通过“”控制台选项卡专门添加/删除/更新PYPI包。非PYPI包更改不会触发web服务器重新启动。注意,这也将启动整个Composer环境重新启动,这可能需要约20分钟

  • 如中所述,查看DAG和插件代码的Airflow Web服务器运行在Google托管租户项目中,而实际运行DAG和插件代码的Airflow workers直接运行在项目中

    在中放置DAG/插件时,Airflow Web服务器(属于租户项目)将验证代码并更新Airflow数据库中的任何新计划更改

    同时,气流调度器(在项目中)请求气流数据库运行下一个DAG,并通知气流工作人员执行计划的工作。然后,气流工作者(在您的项目中)从Composer bucket中获取DAG/插件代码,并编译它们以运行特定任务

    因此,Airflow Web服务器和Airflow workers会在不同的时间分别读取对DAGs/插件代码所做的任何更新

    • 如果您没有在Airflow Web服务器中看到新代码,那么当工作人员在新任务运行时获取新代码时,他们仍应获取新代码

    • 因此,您不必重新启动Composer,工作人员就可以获取更改

    • 在任务执行期间,不能强制工作人员获取并重新编译新代码

    有两种方法可以刷新Airflow Web服务器,以便在其未更新时查看插件代码的更改:

  • 通过中的“气流配置覆盖”选项卡,将
    [webserver]
    部分中的
    reload\on\u plugin\u change
    属性设置为
    True

  • 或者,您可以通过“”控制台选项卡专门添加/删除/更新PYPI包。非PYPI包更改不会触发web服务器重新启动。注意,这也将启动整个Composer环境重新启动,这可能需要约20分钟