You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用YAML流水线部署Azure Function时遇包找不到错误求助

问题

使用YAML流水线构建并部署Azure Function时,构建与发布阶段运行正常,能生成并下载zip包,但部署阶段持续失败,报错信息:

No package found with specified pattern: D:\a\1\drop\output.zip

已尝试调整环境变量和路径正反斜杠,vmImageName设置为windows-latest,部署阶段输出:

  • Downloading: D:\a\1/drop/output.zip
  • Error: No package found with specified pattern: D:\a\1\drop\output.zip

构建阶段代码:

- stage: Build
  displayName: Build solution
  jobs:  
  - job: Build
    displayName: Build and publish solution
    pool:
      vmImage: $(vmImageName)
      workspace:
            clean: all
    steps:
    - checkout: self
    - checkout: AzureUtil

    - task: DotNetCoreCLI@2
      displayName: Build and Publish Azure Function
      inputs:
        command: publish
        arguments: '--configuration Release --output publish_output'
        projects: $(projectsPath)/$(projectFileName)
        publishWebProjects: false
        modifyOutputPath: false
        zipAfterPublish: false

    - task: ArchiveFiles@2
      displayName: "Archive files"
      inputs:
        rootFolderOrFile: "$(System.DefaultWorkingDirectory)/publish_output"
        includeRootFolder: false
        replaceExistingArchive: true
        archiveFile: $(Build.ArtifactStagingDirectory)\output.zip'         

    - task: PublishBuildArtifacts@1
      displayName: "Publish build artifacts"
      inputs:
        PathtoPublish: $(Build.ArtifactStagingDirectory)\output.zip'
        artifactName: 'drop'

部署阶段代码:

- stage: Deploy
  displayName: Deploy Azure Function
  dependsOn: Build
  condition: succeeded()
  jobs:
    - deployment: Deploy
      displayName: Deploy Azure Function
      pool:
        vmImage: $(vmImageName)
      environment: 'Web-Dev'
      strategy:
        runOnce:
          deploy:
            steps:
            - task: AzureFunctionApp@1
              displayName: 'Azure functions app deploy'
              inputs:
                azureSubscription: '$(serviceConnectionName)'
                appType: functionApp
                appName: '$(azureFunctionName)'
                package: '$(Pipeline.Workspace)\drop\output.zip' 
问题排查与解决

你的构建阶段存在语法错误,导致实际发布的构件路径不符合预期:

  1. 多余单引号引发路径错误
    在ArchiveFiles@2任务的archiveFile参数,以及PublishBuildArtifacts@1任务的PathtoPublish参数末尾,都多了一个单引号:

    • 错误写法:$(Build.ArtifactStagingDirectory)\output.zip'
    • 正确写法:$(Build.ArtifactStagingDirectory)\output.zip

    这个多余的单引号会让系统生成的zip文件名变成output.zip'(带单引号),但部署阶段寻找的是无单引号的output.zip,因此出现找不到文件的错误。

  2. 可选优化:显式添加构件下载任务
    对于deployment类型的作业,建议显式添加构件下载任务,确保构件被正确拉取到部署代理:

    - task: DownloadBuildArtifacts@0
      inputs:
        buildType: 'current'
        downloadType: 'single'
        artifactName: 'drop'
        downloadPath: '$(Pipeline.Workspace)'
    
修正后的构建阶段关键代码
- task: ArchiveFiles@2
  displayName: "Archive files"
  inputs:
    rootFolderOrFile: "$(System.DefaultWorkingDirectory)/publish_output"
    includeRootFolder: false
    replaceExistingArchive: true
    archiveFile: $(Build.ArtifactStagingDirectory)\output.zip         

- task: PublishBuildArtifacts@1
  displayName: "Publish build artifacts"
  inputs:
    PathtoPublish: $(Build.ArtifactStagingDirectory)\output.zip
    artifactName: 'drop'

内容的提问来源于stack exchange,提问作者user1005448

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 09:32:52