You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级到Airflow 2后Cloud Composer上DataflowTemplateOperator作业失败问题

问题根因

Airflow 2对应的apache-airflow-providers-google依赖包升级后,DataflowTemplateOperator新增了顶层location参数,Operator执行时会自动将该参数值注入到Dataflow作业提交参数中,和你在dataflow_default_options里手动配置的region/location参数形成互斥冲突,因此抛出二者同时存在的报错。

正确配置方案
  • 第一步:完全删除dataflow_default_options中的region或location配置项,不要在作业参数里手动指定区域
  • 第二步:直接在DataflowTemplateOperator的顶层参数中添加location="us-east1"配置,参考代码如下:
from airflow.providers.google.cloud.operators.dataflow import DataflowTemplateOperator

jdbc_to_bq_task = DataflowTemplateOperator(
    task_id="jdbc_to_bq_task",
    template="你的JDBC转BigQuery模板路径",
    location="us-east1", # 新增顶层参数指定作业运行区域
    dataflow_default_options={
        'gcpTempLocation': 'gs://us-east1-xxxx/tmp/',
        'machineType': 'n2-standard-2',
        'project': 'xxxx',
        'runner': 'DataflowRunner'
        # 移除原来的region配置
    },
    # 原有parameters、gcp_conn_id等其他参数保持不变
)
  • 第三步:如果需要全局统一配置所有Dataflow作业的区域,可在Airflow控制台的Google Cloud连接配置中修改Extra字段,添加"location": "us-east1",无需每个Operator单独指定。
验证方式

作业提交后在Dataflow控制台查看作业的区域属性,确认已调度到us-east1运行即可。

内容的提问来源于stack exchange,提问作者sacoder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 20:06:06