将代码从 Azure 存储库部署到 Function 应用槽

Deploy code from Azure repo to Function app slot

我已经设置了 Azure DevOps 存储库和管道以将我的代码部署到 Azure Functio App 插槽。我能够将应用程序部署到我的插槽,但在进行一些代码更改后,我尝试重新部署我的 app/code 但现在管道失败了。可能是因为我的管道配置错误(因此它只能在插槽为空时部署但不能在现有代码之上更新或重新部署)。

这是我的管道

- master
variables:
  # Azure Resource Manager connection created during pipeline creation
  azureSubscription: 'My Service Connector'
  # Function app name
  functionAppName: 'My Fuction app name'
  # Agent VM image name
  vmImageName: 'vs2017-win2016'
  # Working Directory
  workingDirectory: '$(System.DefaultWorkingDirectory)/'
stages:
- stage: Build
  displayName: Build stage
  jobs:
  - job: Build
    displayName: Build
    pool:
      vmImage: $(vmImageName)
    steps:
    - powershell: |
        if (Test-Path "extensions.csproj") {
            dotnet build extensions.csproj --output ./$(workingDirectory)/bin
        }
      displayName: 'Build extensions'
    - task: ArchiveFiles@2
      displayName: 'Archive files'
      inputs:
        rootFolderOrFile: $(workingDirectory)
        includeRootFolder: false
        archiveType: zip
        archiveFile: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
        replaceExistingArchive: true
    - publish: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
      artifact: drop
- stage: Deploy
  displayName: Deploy stage
  dependsOn: Build
  condition: succeeded()
  jobs:
  - deployment: Deploy
    displayName: Deploy
    environment: $(functionAppName)
    pool:
      vmImage: $(vmImageName)
    strategy:
      runOnce:
        deploy:
          steps:
          - task: AzureFunctionApp@1
            inputs:
              azureSubscription: '$(azureSubscription)'
              appType: functionApp
              appName: $(functionAppName)
              package: '$(Pipeline.Workspace)/drop/$(Build.BuildId).zip'
              deployToSlotOrASE: true
              resourceGroupName: 'my app resource group'
              slotName: testing

管道错误:

仅供参考,我不是开发人员,也不熟悉 git、repos、管道等工具。有什么提示我可以做些什么不同的事情,以便我可以从 Azure Repos + 管道更新我的应用程序代码?

尝试建立一个新的ARM连接(Azure Resource Manager service connection)用于流水线中,看是否可以工作。

如果问题仍然存在,您可以通过将管道变量 System.Debug 设置为 true 来启用调试。队列一个新的运行。从调试日志中,您可能会获得有关该问题的更多有用信息。

必须将 vmImageName: 'vs2017-win2016' 更改为 vmImageName: 'windows-lastest' 才能正常工作。