如何通过 Azure Devops 部署 Azure Function (Java)?

How to deploy Azure Function (Java) via Azure Devops?

我正在尝试配置我的管道以从 Azure devops 部署一个 java 函数。下面是我的发布配置的屏幕截图以及部署日志的副本。该版本运行成功,但它没有 create/deploy 我的函数应用程序下的函数。任何有助于我理解此部署过程如何工作的参考资料 material 都将不胜感激。

注意:我可以使用 "Deploy to Function App" 选项直接从 Visual Studio 代码部署应用程序。

部署日志

2018-11-01T01:23:27.8081386Z ##[section]Starting: Deploy Azure App Service
2018-11-01T01:23:27.8089617Z ==============================================================================
2018-11-01T01:23:27.8089706Z Task         : Azure App Service Deploy
2018-11-01T01:23:27.8089797Z Description  : Update Azure App Services on Windows, Web App on Linux with built-in images or Docker containers, ASP.NET, .NET Core, PHP, Python or Node.js based Web applications, Function Apps on Windows or Linux with Docker Containers, Mobile Apps, API applications, Web Jobs using Web Deploy / Kudu REST APIs
2018-11-01T01:23:27.8089913Z Version      : 4.3.9
2018-11-01T01:23:27.8089958Z Author       : Microsoft Corporation
2018-11-01T01:23:27.8090030Z Help         : [More information](https://aka.ms/azurermwebdeployreadme)
2018-11-01T01:23:27.8090094Z ==============================================================================
2018-11-01T01:23:29.0637937Z Got service connection details for Azure App Service:'app-name'
2018-11-01T01:23:30.3390907Z App Service Application URL: http://app-name.azurewebsites.net
2018-11-01T01:23:30.3396999Z Successfully generated web.config file
2018-11-01T01:23:30.3851617Z Updating App Service Application settings. Data: {"WEBSITE_RUN_FROM_PACKAGE":"0"}
2018-11-01T01:23:30.7694820Z Updated App Service Application settings and Kudu Application settings.
2018-11-01T01:23:31.6821221Z Package deployment using ZIP Deploy initiated.
2018-11-01T01:23:55.3835039Z Deploy logs can be viewed at https://app-name.scm.azurewebsites.net/api/deployments/00a9ea2e2c634b1f81355f26b7c0f52b/log
2018-11-01T01:23:55.3835345Z Successfully deployed web package to App Service.
2018-11-01T01:23:57.2965141Z Successfully added release annotation to the Application Insight : app-name
2018-11-01T01:23:58.4077123Z Successfully updated deployment History at https://app-name.scm.azurewebsites.net/api/deployments/12345667890
2018-11-01T01:23:59.0842425Z ##[section]Finishing: Deploy Azure App Service

看你把*.jar文件发布到函数应用,其实函数应用的内容不仅仅是一个jar文件。在 Azure DevOps 上进行 mvn 构建后,本地检查文件夹 functionappname/target/azure-functions/functionappname,应该发布相同的工件。

这是在 Azure DevOps 中部署 java 功能的详尽 tutorial

总而言之,构建和发布管道中的几个步骤。

  1. 选择Maven任务,没什么特别的。
  2. 复制文件任务,如上所述将内容设置为**/azure-functions/**
  3. 添加归档任务,将要归档的根文件夹或文件设置为$(build.artifactstagingdirectory)/target/azure-functions/<yourfunctionappname>,我们可以按照建议为functionappname添加变量。并记得取消选中 Prepend root folder name to archive path。
  4. 发布工件,将发布路径设置为$(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
  5. 为了简单起见,教程直接在构建管道中添加了发布步骤,要与发布管道一起使用,添加一个默认的 Azure 应用服务部署任务就足够了,除了应用名称等基本信息外,无需设置任何内容。 4.* Preview task中,默认的部署方式是Run from package,我们可以按照教程中的方式选择其他方式。

要使你的 Azure Functions 成为 Azure DevOps Pipelines 版本 (CD) 中部署的一部分,你需要使用 Azure 门户设置和配置你的 Azure Functions 应用程序。

在配置 Azure Functions 时必须完成一些步骤,无论您使用何种语言开发 Azure Functions,这些步骤都是通用的。

这些是任务:

  1. 确保您的函数应用符合某些文件夹层次结构
  2. 使用 Azure 门户设置函数应用程序的持续部署,并确保您使用的是来自 Azure DevOps 存储库的源代码。
  3. 配置部署选项,包括部署环境
  4. 配置部署凭据。使用凭据启用 Azure DevOps 以连接到你的函数应用程序部署

有关这些步骤的详细信息,请访问有关在 Azure Functions 上启用持续部署的 MSFT 文档:

https://docs.microsoft.com/en-us/azure/azure-functions/functions-continuous-deployment