AzureResourceManagerTemplateDeployment@3任务数组参数覆盖语法求助
解决AzureResourceManagerTemplateDeployment@3任务数组参数赋值问题
硬编码数组的正确写法
直接在overrideParameters里用方括号包裹IP列表,不要加引号,示例如下:
- task: AzureResourceManagerTemplateDeployment@3 inputs: azureResourceManagerConnection: '你的ARM服务连接名' subscriptionId: '你的订阅ID' resourceGroupName: '目标资源组名' location: '部署区域' csmFile: 'ARM模板文件路径' overrideParameters: > -my-ssis-ir_publicIPs ["10.0.0.1", "10.0.0.2", "10.0.0.3"]
通过YAML参数传递数组的写法
先在YAML顶部定义数组类型的参数,然后直接在任务中引用,无需额外转换:
# 定义YAML参数 parameters: ssisIrPublicIPs: type: object default: ["10.0.0.1", "10.0.0.2"] steps: - task: AzureResourceManagerTemplateDeployment@3 inputs: azureResourceManagerConnection: '你的ARM服务连接名' subscriptionId: '你的订阅ID' resourceGroupName: '目标资源组名' location: '部署区域' csmFile: 'ARM模板文件路径' overrideParameters: > -my-ssis-ir_publicIPs ${{ parameters.ssisIrPublicIPs }}
常见错误原因
之前失败的核心问题是把数组转成了字符串:
- 硬编码时如果给数组整体加了引号(比如
"[\"10.0.0.1\"]"),任务会识别为字符串而非数组 - 使用
convertToJson会将数组序列化为JSON字符串,同样不符合任务对数组参数的格式要求
内容的提问来源于stack exchange,提问作者SuttyHoo
相关产品推荐
相关产品推荐

