如何在VSTS发布定义中创建自定义流程参数?
在Azure DevOps(原VSTS)发布定义中创建流程参数并关联任务设置的方法
我完全懂你的困惑——发布定义里的流程参数入口确实比构建定义藏得深,默认模板自带的参数也不够灵活。下面给你两种适配不同编辑器的解决方案,完美解决Azure Subscription这类非字符串设置的参数化需求:
一、经典发布编辑器(你当前使用的可视化界面)
- 打开你的发布定义进入编辑模式,切换到**「变量」**选项卡
- 找到页面上方「变量组」按钮右侧的**「参数」**按钮(很多人会忽略这个入口),点击打开参数管理窗口
- 在窗口中点击「添加」,就能创建自定义流程参数了:
- 对于Azure Subscription这类特殊类型,在「类型」下拉框里直接选择「Azure订阅」,而不是默认的字符串
- 你还可以设置参数的默认值、是否允许运行时修改等属性
- 创建完成后回到任务设置界面,点击目标设置项旁边的(i)图标,就能看到熟悉的「Link」选项,选择你刚创建的参数即可完成关联
二、YAML发布管道(如果后续考虑切换到代码化配置)
如果用YAML来定义发布管道,参数的创建会更直观,直接在YAML开头定义参数块,支持多种类型:
parameters: # 定义Azure订阅类型的参数,还可以设置可选值列表 - name: targetAzureSubscription type: string default: "我的生产环境订阅" values: - "我的生产环境订阅" - "我的测试环境订阅" # 还能定义布尔、整数等其他类型参数 - name: enableDeploymentSlot type: boolean default: true
然后在任务中直接引用参数:
- task: AzureRmWebAppDeployment@4 displayName: '部署到Azure App Service' inputs: azureSubscription: ${{ parameters.targetAzureSubscription }} WebAppName: 'my-web-app' DeployToSlotOrASE: ${{ parameters.enableDeploymentSlot }} # 其他任务设置...
补充说明
- 模板自带的OOTB参数也可以在「参数」管理窗口中编辑、删除,或者添加新参数来扩展,不用被模板限制
- 流程参数和变量的核心区别就是支持特定类型,像Azure订阅、下拉选择、布尔值这类场景,变量只能存字符串,完全满足不了,这也是参数存在的核心价值
内容的提问来源于stack exchange,提问作者Benjamin Winkler
相关产品推荐
相关产品推荐

