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

如何向模板传递硬编码的对象类型参数?

解决Azure DevOps模板硬编码传递对象参数的问题

问题场景

你定义了一个接收对象类型参数的模板template.yml:

#template.yml

parameters:
  - name: MyObject
    type: object

直接在流水线中硬编码传递对象参数时,会触发错误:

A value for the 'MyObject' parameter must be provided.

但通过流水线自身参数中转传递时可以正常运行:

trigger: none

parameters:
- name: MyObject
  type: object
  default:
    firstname: John
    lastname: Doe

stages:
- template: template.yml
  parameters:
    MyObject: ${{ parameters.MyObject}}

解决方案

直接硬编码传递对象参数时,需要用表达式语法将对象包裹起来,显式告知Azure DevOps这是完整的对象参数值。修改后的pipeline.yml如下:

#pipeline.yml

trigger: none

stages:
- template: template.yml
  parameters:
    MyObject: ${{ {
      firstname: John,
      lastname: Doe
    } }}

原因说明

Azure DevOps的模板参数解析逻辑中,直接嵌套的YAML键值对会被视为参数的子属性,而非完整的MyObject参数值。使用${{ ... }}表达式包裹对象后,会将内部整个YAML对象解析为单一参数值传递给模板,匹配object类型参数的要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 12:27:09