使用 GoLang 部署 azure 函数

Deploy azure function with GoLang

目前我正在构建一个 GoLang 无服务器 Azure 函数。 我使用这个构建管道:

trigger:
- main

pool:
  vmImage: 'vs2017-win2016'
steps:
- task: GoTool@0
  inputs:
    version: '1.16.2'

- task: Go@0
  displayName: 'go get'
  inputs:
    arguments: '-d'
    workingDirectory: '$(System.DefaultWorkingDirectory)'

- task: Go@0
  displayName: 'go build'
  inputs:
    command: build
    arguments: '-o go_ibors_backend main.go'
    workingDirectory: '$(System.DefaultWorkingDirectory)'

- task: ArchiveFiles@2
  inputs:
    rootFolderOrFile: '$(Build.BinariesDirectory)'
    archiveType: 'zip'
    archiveFile: '$(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip'
    
- task: PublishBuildArtifacts@1
  inputs:
    PathtoPublish: '$(Build.ArtifactStagingDirectory)'
    ArtifactName: 'drop'

构建管道 运行 成功。此外,发布管道部署成功,但当我在 Azure 门户中查看我的功能时,没有任何结果。当我将函数本地推送到 Azure 时,我的所有函数都会显示。

发布任务:

我做错了什么?

问题是 ArchiveFiles 指向错误的 rootFolderOrFile 并且 includeRootFolder 必须设置为 false,因为该作业将在根文件夹中查找 host.json 文件。

- task: ArchiveFiles@2
  displayName: 'Create artifact'
  inputs:
    rootFolderOrFile: '$(System.DefaultWorkingDirectory)'
    includeRootFolder: false
    archiveType: 'zip'
    archiveFile: '$(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip'
    replaceExistingArchive: true