使用GoLang部署Azure函数

huangapple go评论120阅读模式
英文:

Deploy azure function with GoLang

问题

目前我正在构建一个使用GoLang编写的Azure无服务器函数。我使用以下构建流程:

  1. trigger:
  2. - main
  3. pool:
  4. vmImage: 'vs2017-win2016'
  5. steps:
  6. - task: GoTool@0
  7. inputs:
  8. version: '1.16.2'
  9. - task: Go@0
  10. displayName: 'go get'
  11. inputs:
  12. arguments: '-d'
  13. workingDirectory: '$(System.DefaultWorkingDirectory)'
  14. - task: Go@0
  15. displayName: 'go build'
  16. inputs:
  17. command: build
  18. arguments: '-o go_ibors_backend main.go'
  19. workingDirectory: '$(System.DefaultWorkingDirectory)'
  20. - task: ArchiveFiles@2
  21. inputs:
  22. rootFolderOrFile: '$(Build.BinariesDirectory)'
  23. archiveType: 'zip'
  24. archiveFile: '$(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip'
  25. - task: PublishBuildArtifacts@1
  26. inputs:
  27. PathtoPublish: '$(Build.ArtifactStagingDirectory)'
  28. ArtifactName: 'drop'

构建流程已成功运行。此外,发布流程也成功部署,但是当我在Azure门户中查看我的函数时,没有结果显示。当我将函数本地推送到Azure时,所有的函数都会显示出来。

发布任务:
使用GoLang部署Azure函数

我做错了什么?

英文:

Currently I'm building a GoLang serverless Azure Function.
I use this build pipeline:

  1. trigger:
  2. - main
  3. pool:
  4. vmImage: 'vs2017-win2016'
  5. steps:
  6. - task: GoTool@0
  7. inputs:
  8. version: '1.16.2'
  9. - task: Go@0
  10. displayName: 'go get'
  11. inputs:
  12. arguments: '-d'
  13. workingDirectory: '$(System.DefaultWorkingDirectory)'
  14. - task: Go@0
  15. displayName: 'go build'
  16. inputs:
  17. command: build
  18. arguments: '-o go_ibors_backend main.go'
  19. workingDirectory: '$(System.DefaultWorkingDirectory)'
  20. - task: ArchiveFiles@2
  21. inputs:
  22. rootFolderOrFile: '$(Build.BinariesDirectory)'
  23. archiveType: 'zip'
  24. archiveFile: '$(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip'
  25. - task: PublishBuildArtifacts@1
  26. inputs:
  27. PathtoPublish: '$(Build.ArtifactStagingDirectory)'
  28. ArtifactName: 'drop'

The build pipeline has run successfully. Also, the release pipeline is deploying successful, but when I look at my functions in the Azure Portal there are no results. When I push the function locally to Azure then all my functions are displayed.

Release task:
使用GoLang部署Azure函数

What I'm doing wrong?

答案1

得分: 0

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

  1. - task: ArchiveFiles@2
  2. displayName: '创建构件'
  3. inputs:
  4. rootFolderOrFile: '$(System.DefaultWorkingDirectory)'
  5. includeRootFolder: false
  6. archiveType: 'zip'
  7. archiveFile: '$(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip'
  8. replaceExistingArchive: true
英文:

The problem was that ArchiveFiles was directing to the wrong rootFolderOrFile and that the includeRootFolder must be put to false, because the job will look for a host.json file in the root folder.

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

huangapple
  • 本文由 发表于 2021年9月18日 19:21:28
  • 转载请务必保留本文链接:https://go.coder-hub.com/69234178.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定