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

Azure Pipeline参数是否仅能用于组件参数?非组件场景如何使用?

Azure ML Pipeline 非组件入参场景下的参数使用问题解答

核心结论

除组件参数场景外,Azure ML Pipeline 支持在其他配置项中消费、使用顶层pipeline参数,但直接将pipeline函数形参传入非组件入参类配置项时,不会触发自动值替换,才会出现你遇到的占位符不生效问题。

问题根因

你运行时看到@@output_data_path@@未被实际参数值替换,本质原因是:

  • 顶层pipeline参数的自动绑定逻辑,默认只会扫描组件调用时传入的入参位做参数识别和值替换
  • step2.outputs.destination_data.configure()里的path_on_datastore属于步骤级静态配置属性,不属于组件预先声明的入参范畴,不会被默认的自动扫描逻辑识别,因此直接传入函数形参时,只会被当做普通字符串字面量处理,最终渲染为带@@的未替换占位符

解决方案

优先推荐用显式PipelineParameter包装的方式解决,改动最小,完全适配你当前的代码结构:

  • 引入SDK内置的PipelineParameter类型,对需要在非组件入参场景使用的pipeline参数做显式包装,参数解析链路会自动识别所有显式声明的PipelineParameter对象,在全配置范围做值替换。

修改后的可运行代码示例:

from azure.ml.component import PipelineParameter

class PublishedPipeline(AMLPipelineHelper):
    def build(self, config):
        input_step = self.module("step1")
        output_step = self.component_load("data_transfer")
    
        def pipeline_function(input_data, output_data_path):
            step1 = input_step(input_file=input_data)
            step2 = output_step(
                 source_data=step1.outputs.output_path
            )
            # 显式包装为PipelineParameter对象,非组件入参场景可正常识别替换
            output_path_param = PipelineParameter(
                name="output_data_path", 
                default_value=output_data_path
            )
            step2.outputs.destination_data.configure(
                 path_on_datastore=output_path_param
            )
        return pipeline_function

其他可选方案

如果不想引入PipelineParameter包装,也可以选择以下两种方式:

  • 把输出路径配置逻辑下沉到data_transfer组件内部:给组件新增一个字符串类型的destination_path入参,在组件执行代码里完成输出路径的配置,此时output_data_path作为组件入参传入,可走默认的自动参数绑定链路
  • 调用pipeline endpoint提交运行时,在请求体中写运行时表达式手动替换@@output_data_path@@占位符,该方式维护成本高,不做优先推荐

补充说明

Azure ML Pipeline 顶层参数自动绑定的原生覆盖范围仅包含三类场景:

  • 组件的输入参数绑定
  • 组件的输出参数绑定
  • 步骤间的输入输出依赖传递

凡是涉及步骤级配置(包括但不限于输出路径配置、计算资源绑定、运行时环境变量配置、数据存储挂载配置等非组件预先声明入参的配置项),都需要通过显式PipelineParameter包装的方式传参,才能被参数解析逻辑正确识别,避免出现占位符残留问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 10:36:15