Azure Pipeline模板参数引用报错:找不到alerts键
问题解决:Azure Pipeline 引用外部参数模板报错 "Key not found 'alerts'"
错误原因
你错误地将参数模板文件放在variables节点下引用。Azure Pipeline中参数模板与变量模板的加载逻辑是分离的:
variables节点仅用于加载变量模板(文件内容为variables定义)- 参数模板必须通过
parameters节点的template属性引入,否则无法通过parameters.alerts获取到定义的参数集合
修正方案
1. 保留alerts-parameters.yml内容不变
parameters: - name: alerts type: object default: - alertName: 'ex1' alertParam: '1' - alertName: 'ex2' alertParam: '2' - alertName: 'ex3' alertParam: '3'
2. 修改主管道azurePipeline.yml,将参数模板移至parameters节点引用
parameters: - template: alerts-parameters.yml jobs: - job: ValidateAlert displayName: 'ValidateAlert' pool: vmImage: 'ubuntu-latest' steps: - ${{ each alert in parameters.alerts }}: - task: AzureCLI@2 displayName: 'Validate Alert: ${{ alert.alertName }}' inputs: azureSubscription: $(ResourceGroup) scriptType: 'bash' scriptLocation: 'inlineScript' inlineScript: | echo "Validating alert: ${{ alert.alertName }}"
关键说明
当需要拆分大量参数到单独模板文件时,必须通过parameters节点加载参数模板,这样parameters.alerts才能正确识别模板中定义的参数集合,遍历逻辑即可正常执行。
内容的提问来源于stack exchange,提问作者karim Sayed
相关产品推荐
相关产品推荐

