使用 yaml 将 Azure Function Code 部署到 FunctionApp 插槽时出现问题(未找到 zip)

问题描述 投票:0回答:1

我正在用 C# 构建 Azure 函数,并希望使用管道进行部署。 我构建一次,测试,然后发布。 然后,对于每个 ENV,我运行一个二头肌文件来设置基础架构,并在我希望将发布的函数代码部署到(单个)函数应用程序之后立即运行。

我尝试从已发布的 zip 文件进行部署时遇到错误。找不到该文件。我做错了什么?


发布文件示例:

[命令]/usr/bin/zip -r /home/vsts/work/1/s/build272.zip

(日志行看起来很合理)

发现错误:

##[错误]错误:找不到具有指定模式的包:/home/vsts/work/1/a/*.zip
检查是否提到了包

请注意,我们从 /1/s 发布并尝试在 /1/a 中找到它

构建已“附加”工件为“drop/build272.zip” (11MB的文件看起来还算合理)

要发布的 yaml 行:

- task: DotNetCoreCLI@2
  displayName: "dotnet publish"
  inputs:
    command: publish
    arguments: '--configuration Release --output publish_output'
    projects: 'src/**/*.csproj'
    publishWebProjects: false
    modifyOutputPath: false
    zipAfterPublish: false
- task: ArchiveFiles@2
  displayName: "Archive files (into zip)"
  inputs:
    rootFolderOrFile: "$(System.DefaultWorkingDirectory)/publish_output"
    includeRootFolder: false
    archiveFile: "$(System.DefaultWorkingDirectory)/build$(Build.BuildId).zip"
- task: PublishBuildArtifacts@1
  displayName: "Publish build artifacts"
  inputs:
    PathtoPublish: '$(System.DefaultWorkingDirectory)/build$(Build.BuildId).zip'

要部署的 yaml 行:

- task: AzureFunctionApp@1 # Add this at the end of your file
  displayName: 'Deploy Function code to FunctionApp Slot'
  inputs:    
    azureSubscription: 'ServiceConnection'
    appType: functionAppLinux # default is functionApp
    appName: 'f2404dev-app'
    package: '$(System.ArtifactsDirectory)/*.zip'
c# azure azure-functions yaml devops
1个回答
0
投票

看来你漏掉了下载神器的步骤

- task: DownloadBuildArtifacts@1
  inputs:
    buildType: 'current'
    downloadType: 'single'
    artifactName: 'drop'
    itemPattern: '**/*.zip'
  downloadPath: '$(System.ArtifactsDirectory)'

参考:https://sterl.org/2023/03/azure-devops-function-app-deployment-no-package-found/

© www.soinside.com 2019 - 2024. All rights reserved.