Azure DevOps YAML部署Synapse报错:未找到匹配文件求助
排查Azure DevOps YAML流水线Synapse部署的文件找不到错误
以下是针对你遇到的[error]Encountered with exception:Error: No file found with this pattern错误的排查和修复建议:
修复YAML结构缩进问题
你的YAML存在层级缩进混乱,导致任务执行逻辑异常。正确的层级结构应该是:trigger: branches: include: - workspace_publish pool: name: Azure Pipelines stages: - stage: Build displayName: Build stage jobs: - job: Deploying steps: # 所有步骤任务需缩进至此层级下原代码中
jobs和steps未正确嵌套在stage和job节点下,会导致任务无法按预期关联到对应阶段和作业。修正CopyFiles@2任务参数
- 删除无效参数:
archiveFile是ArchiveFiles任务的参数,不属于CopyFiles@2,需移除该配置。 - 扩大文件匹配范围:
*json仅会复制SourceFolder下一级的JSON文件,若要包含子目录(比如ARM文件夹内的文件),需改为**/*.json,确保所有层级的JSON文件都被复制。
修改后的CopyFiles任务:
- task: CopyFiles@2 displayName: 'Copy ARM Template Files to: $(Build.ArtifactStagingDirectory)' inputs: SourceFolder: testsaws Contents: '**/*.json' TargetFolder: '$(Build.ArtifactStagingDirectory)'- 删除无效参数:
调整部署任务的文件路径
发布流水线工件后,若部署作业与构建作业不在同一阶段/进程,需先通过DownloadPipelineArtifact@2下载工件,且文件路径应指向$(Pipeline.Workspace)(工件下载后的默认目录),而非$(Build.ArtifactStagingDirectory)(仅当前构建作业可访问的临时目录)。
补充下载步骤并修正路径:# 先添加下载工件任务 - task: DownloadPipelineArtifact@2 displayName: 'Download Pipeline Artifact' inputs: artifact: 'ASA_Drop' path: '$(Pipeline.Workspace)' # 修正部署任务的文件路径 - task: AzureSynapseWorkspace.synapsecicd-deploy.synapse-deploy.Synapse workspace deployment@1 displayName: 'Synapse deployment task for workspace: qasaws' inputs: azureSubscription: 'dataplatform-qa-group-SPN' subscriptionId: 'XXX' action: 'Create Or Update Resource Group' resourceGroupName: 'dataplatform-qa-group' location: 'West US 2' TemplateFile: '$(Pipeline.Workspace)/ASA_Drop/ARM/TemplateForWorkspace.json' ParametersFile: '$(Pipeline.Workspace)/ASA_Drop/ARM/TemplateParametersForWorkspaceQA.json'验证文件复制与发布结果
可在CopyFiles和Publish任务后添加PowerShell/Bash任务,列出目录文件,确认文件是否被正确复制和发布:- task: PowerShell@2 displayName: 'Check Staging Directory Files' inputs: targetType: 'inline' script: 'Get-ChildItem -Path $(Build.ArtifactStagingDirectory) -Recurse'
内容的提问来源于stack exchange,提问作者abautista
相关产品推荐
相关产品推荐

