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

在GCP Cloud Composer的Airflow中调用带标签的Dataform工作流遇字段错误求助

问题解决方法

错误根源

你使用的Cloud Composer 1.20.2(对应Airflow 2.2.5)依赖的apache-airflow-providers-google版本过低,该版本的Dataform Operator对应的API协议中,InvocationConfig结构体还未支持includedTags/included_Tags字段,因此触发了ValueError。


解决方法

方法一:升级Cloud Composer环境

将Composer升级到2.x版本(如2.0及以上),对应Airflow 2.3+及更高版本的apache-airflow-providers-google(10.0.0+),这些版本已支持Dataform工作流调用中的标签过滤参数。升级后,需将代码中的字段名修正为标准下划线格式included_tags,示例修改如下:

create_workflow_invocation = DataformCreateWorkflowInvocationOperator(
    task_id='create_workflow_invocation',
    project_id=PROJECT_ID,
    region=REGION,
    repository_id=REPOSITORY_ID,
    workflow_invocation={
        "compilation_result": "{{ task_instance.xcom_pull('create_compilation_result')['name'] }}",
        "invocation_config": { "included_tags": ["dcm_raw"], "transitive_dependencies_included": True }
    },
    timeout=None,
)

方法二:绕过Airflow Operator,用BashOperator调用gcloud命令

若无法升级Composer环境,可直接通过gcloud命令触发Dataform工作流,示例代码如下:

from airflow.operators.bash import BashOperator

create_workflow_invocation = BashOperator(
    task_id='create_workflow_invocation',
    bash_command="""
        # 获取最新的编译结果ID
        COMPILATION_RESULT=$(gcloud dataform compilation-results list \
            --project={PROJECT_ID} \
            --region={REGION} \
            --repository={REPOSITORY_ID} \
            --git-commitish={GIT_COMMITISH} \
            --limit=1 \
            --format="value(name)")
        
        # 调用Dataform工作流并指定标签
        gcloud dataform workflow-invocations create \
            --project={PROJECT_ID} \
            --region={REGION} \
            --repository={REPOSITORY_ID} \
            --compilation-result="$COMPILATION_RESULT" \
            --included-tags=dcm_raw \
            --transitive-dependencies-included
    """.format(
        PROJECT_ID=PROJECT_ID,
        REGION=REGION,
        REPOSITORY_ID=REPOSITORY_ID,
        GIT_COMMITISH=GIT_COMMITISH
    ),
    timeout=None
)

注意:需确保Composer环境的服务账号拥有dataform.workflowInvocations.create等Dataform相关权限。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 21:57:32