我已经在Azure DevOps中为我的Azure Functions项目创建了管道。第一个有趣的问题是,当准备好新的版本时,发行不会开始。我不明白为什么。
我可以使用刚刚创建的版本手动触发发行版。
您怎么看,发行成功了。管道是这样的:
steps:
- task: AzureFunctionApp@1
displayName: 'Deploy Azure Function App'
inputs:
azureSubscription: '$(Parameters.AzureSubscription)'
appType: '$(Parameters.AppType)'
appName: '$(Parameters.AppName)'
使用Kudu,我可以检查服务器上的wwwroot文件夹,并且正如我期望的那样,我找到了此功能的所有二进制文件。问题是,门户中没有可用的功能,我可以调用它们。
如何在Azure门户中看到没有可用的功能。
我刚刚注意到,从发行版开始,文件系统上没有正确的结构。我认为我在管道的配置中做错了:我选择:
**/*.csproj
-o publish_output
(用于在 publish_output 文件夹中创建内部版本)然后我使用以下参数创建要在发行版中部署的zip:
$(System.DefaultWorkingDirectory)/publish_output
PS:System.ArtifactsDirectory
和Build.ArtifactStagingDirectory
有什么区别?
答案 0 :(得分:0)
准备好新版本时,发行不会开始。
您可能没有启用Continuous deployment trigger
。请参见下面的屏幕,为发布管道启用CD触发。
Azure门户中没有可用的功能
Azure函数需要特定的文件夹结构,以允许这些函数显示在Azure门户中。您可以检查/ wwwroot文件夹中的文件夹结构是否如下所示。有关更多信息,请参见文档here。
| - bin
| - MyFirstFunction
| | - function.json
| - MySecondFunction
| | - function.json
| - host.json
答案 1 :(得分:0)
我修复了它。在存档步骤中,我必须取消选中Prepend root folder name to archive paths
(我没有读过此选项,因为它是默认选项,所以我没有注意)。
$(System.DefaultWorkingDirectory)/publish_output
Prepend root folder name to archive paths
steps: - task: ArchiveFiles@2 displayName: 'Archive (zip)' inputs: rootFolderOrFile: '$(System.DefaultWorkingDirectory)/publish_output' includeRootFolder: false archiveFile: '$(System.DefaultWorkingDirectory)/build$(Build.BuildId).zip'
在步骤发布工件:放下检查:
$(System.DefaultWorkingDirectory)/build$(Build.BuildId).zip
steps: - task: PublishBuildArtifacts@1 displayName: 'Publish Artifact: drop' inputs: PathtoPublish: '$(System.DefaultWorkingDirectory)/build$(Build.BuildId).zip'