【发布时间】:2021-12-29 00:24:34
【问题描述】:
我目前正在构建一个具有参数列表的管道,然后将传递这些值以供子管道使用。
主管道:
trigger: none
parameters:
- {name: 'location', type: string, default: 'eastus2', values: ['eastus2', 'centralus'], displayName: 'Resource group location'}
- {name: 'sqlDBAutoPauseDatabase', type: string, default: 'ooi', values: ['ooi', 'poembi'], displayName: 'SQL DB Autopause - Target database name'}
- {name: 'sqlDBAutoPauseAction', type: string, default: 'Enable', values: ['Enable', 'Disable'], displayName: 'SQL DB Autopause - Action to perform'}
- {name: 'sqlDBAutoPauseDelay', type: number, default: 60, values: [60, -1], displayName: 'SQL DB Autopause - Autopause delay time'}
stages:
- stage: 'Autopause'
jobs:
- template: '/cicd/pipelines/ooi/iac/ooi-sqldb-autopause.yaml'
parameters:
parent:
${{ insert }}: ${{ parameters }}
要运行的第一个子管道:
parameters:
- {name: parent, type: object, default: {}}
jobs:
- deployment: 'deploymentName'
environment: 'OOI-${{parameters.parent.envName}}'
strategy:
runOnce:
deploy:
steps:
- task: AzurePowerShell@5
inputs:
azureSubscription: '$(ADO_Connection)'
azurePowerShellVersion: 'LatestVersion'
ScriptType: 'InlineScript'
Inline: |
Set-AzSqlDatabase `
-ResourceGroupName $(ResourceGroupName) `
-DatabaseName ${{parameters.parent.sqlDBAutoPauseDatabase}} `
-ServerName $(ServerShort) `
-AutoPauseDelayInMinutes ${{parameters.parent.sqlDBAutoPauseDelay}}
这很好用,但这意味着我必须将运行所需的所有管道切换为模板文件。我想知道是否有另一种方法可以将这些参数传递给子管道?我一直在研究其他选项,例如变量组和使用 REST API。
【问题讨论】:
标签: azure-devops yaml azure-pipelines azure-powershell