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

Azure Pipeline each循环添加azureSubscription遇参数错误,求解决方案

正确配置方法

你遇到的问题有两个核心原因:

  1. 普通script步骤不支持azureSubscription输入参数,需使用专门的Azure CLI任务关联订阅
  2. 原配置中each循环的遍历对象和变量引用有误

修正后的完整YAML配置

parameters:
- name: infoList
  displayName: 信息列表
  type: object
  # 改为数组类型,支持多个信息项循环
  default:
    - info1: abc
      info2: 123
      info3: hello
    - info1: def
      info2: 456
      info3: world

steps:
  - checkout: none
  # 遍历每个信息对象
  - ${{ each item in parameters.infoList }}:
      # 使用Azure CLI任务替代script,支持azureSubscription参数
      - task: AzureCLI@2
        displayName: 配置密钥Vault - ${{ item.info1 }}
        inputs:
          # 指定你的Azure服务连接名称
          azureSubscription: 'subscriptionNumber'
          # 选择Azure CLI版本
          scriptType: 'bash'
          scriptLocation: 'inlineScript'
          inlineScript: |
            echo "info1 is ${{ item.info1 }}"
            echo "info2 is ${{ item.info2 }}"
            echo "info3 is ${{ item.info3 }}"

            az keyvault secret set --vault-name ${{ item.info1 }} --name ${{ item.info2 }} --value ${{ item.info3 }}

关键说明

  • 替换任务类型:用AzureCLI@2任务代替普通script,该任务是微软官方提供的专用任务,支持通过azureSubscription参数关联已配置的Azure服务连接。
  • 修正参数结构:把原info参数改为数组类型infoList,确保each循环能遍历多个信息对象;若仅需单个对象,可直接去掉循环使用参数值。
  • 变量引用修正:循环中用${{ item.info1 }}引用当前对象的属性,原配置中${{ info.info1 }}写法错误——遍历单个对象的属性时,info是键值对(key为info1,value为abc),无法直接访问info1属性。
  • 缩进规范:YAML对缩进要求严格,需确保inputs、inlineScript等层级对齐。

如果你的info参数仅需单个对象(无需循环),可简化为:

parameters:
- name: info
  displayName: 信息
  type: object
  default:
    info1: abc
    info2: 123
    info3: hello

steps:
  - checkout: none
  - task: AzureCLI@2
    displayName: 配置密钥Vault
    inputs:
      azureSubscription: 'subscriptionNumber'
      scriptType: 'bash'
      scriptLocation: 'inlineScript'
      inlineScript: |
        echo "info1 is ${{ parameters.info.info1 }}"
        echo "info2 is ${{ parameters.info.info2 }}"
        echo "info3 is ${{ parameters.info.info3 }}"

        az keyvault secret set --vault-name ${{ parameters.info.info1 }} --name ${{ parameters.info.info2 }} --value ${{ parameters.info.info3 }}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 20:24:55