使用Azure管道作为代码,并尝试使用YAML管道通过Azure中的ARM模板创建资源。
在Azure DevOps中,我已将代码(部署json,参数json和yml文件等)推送到功能分支下的Azure Repos Git中。
在运行管道时,由于“ csmFile”值,我遇到错误“错误:找不到与模板文件模式匹配的任何文件”。
我的yml文件包含如下的ARM模板部署信息。
trigger:
branches:
include:
- dev-pipecode
pool:
vmImage: 'windows-latest'
steps:
- task: AzureResourceManagerTemplateDeployment@3
inputs:
deploymentScope: 'Resource Group'
azureResourceManagerConnection: 'company-development-Contributor'
subscriptionId: 'XXXXXXXX'
action: 'Create Or Update Resource Group'
resourceGroupName: 'name of the resource group'
location: 'North Europe'
templateLocation: 'Linked artifact'
csmFile: '$(System.DefaultWorkingDirectory)/AzureAuto/pipelineascode.json'
csmParametersFile: '$(System.DefaultWorkingDirectory)/AzureAuto/param-pipelineascode.json'
deploymentMode: 'Incremental'
我错过了什么吗?请指导我。谢谢。
答案 0 :(得分:1)
首先,仅供确认。
基于您在任务中定义的$(System.DefaultWorkingDirectory)/AzureAuto/pipelineascode.json
,您需要确保pipelineascode.json
在存储库中的位置应如下所示:
Repository
| AzureAuto
| | pipelineascode.json
| | param-pipelineascode.json
这是我的存储库样本:
如果您的ARM模板存储库的结构确实符合上述要求,那么我想它应该与您的分支相关。
您的 master 分支是否仍然包含AzureAuto
文件夹和pipelineascode.json
/ param-pipelineascode.json
文件?
您可以转至遇到构建错误消息的build result
页面,并确认分支名称是否是您存储的ARM模板文件的名称:
至于我为什么会这样,这是因为系统默认情况下会基于master分支构建,而用户会先从 new YAML管道开始,然后再从 运行它。
此时,您需要将azure-pipelines.yml
文件从master
分支复制到存储ARM模板文件的功能分支。
然后去Pipelines
=>打开相应的YAML版本=> 编辑 =>专注于左上角并更改分支:
现在,此YAML管道应基于您存储ARM模板的正确分支,并成功找到JSON文件。