首页 > 解决方案 > Azure 管道错误:找不到与模板文件模式匹配的任何文件

问题描述

将 Azure Pipeline 作为代码工作,并尝试使用 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'

我错过了什么吗?请指导我。谢谢。

标签: azure-devopsazure-pipelinesazure-pipelines-release-pipelinearm-template

解决方案


首先,只是为了确认。

基于$(System.DefaultWorkingDirectory)/AzureAuto/pipelineascode.json您在任务中定义的这一点,您需要确保pipelineascode.jsonin repos 的位置应如下所示:

   Repository
    |    AzureAuto
    |    |   pipelineascode.json
    |    |   param-pipelineascode.json

这是我的存储库示例:

在此处输入图像描述


如果您的 ARM 模板存储库的结构确实尊重上面提到的,那么现在我想它应该与您的分支相关。

您的分支是否仍包含AzureAuto文件夹和pipelineascode.json/param-pipelineascode.json文件?

您可以转到build result遇到构建错误消息的页面,并确认分支名称是否是您存储 ARM 模板文件的那个:

在此处输入图像描述

至于我为什么这么想,是因为系统默认会基于 master 分支构建,而用户从新的YAML 管道开始并首先运行它。

此时,您需要将文件从分支复制到存储 ARM 模板文件的功能分支。azure-pipelines.ymlmaster

然后 go Pipelines=> 打开对应的 YAML build => Edit => 关注左上角并更改分支:

在此处输入图像描述

现在,这个 YAML 管道应该建立在您存储 ARM 模板的正确分支上,并成功找到 JSON 文件。


推荐阅读