你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Azure Functions 的连续部署

通过源代码管理集成,可以使用 Azure Functions 连续部署代码。 源代码管理集成可实现一个工作流,其中会通过代码更新触发 Azure 上的生成、打包和部署的工作流。

连续部署选项非常适合需要整合频繁提供的多项贡献内容的项目。 使用连续部署时,可以为代码维护单一数据源,这样可便于团队轻松进行协作。

本文中的步骤介绍如何使用 Azure 门户中的部署中心在 Azure 中配置对函数应用的连续代码部署。 还可以使用 Azure CLI 配置持续集成。

Functions 支持以下源以持续部署到应用:

Azure Repos(Azure DevOps 其中的一项服务)中维护项目代码。 支持 Git 和 Team Foundation 版本控制。 与 Azure Pipelines 生成提供程序一起使用)。 有关详细信息,请参阅什么是 Azure Repos?

还可以将函数应用连接到外部 Git 存储库,但这需要手动进行同步。 有关部署选项的详细信息,请参阅 Azure Functions 中的部署技术

注意

本文中介绍的持续部署选项特定于仅代码部署。 有关容器化函数应用部署,请参阅启用容器持续部署到 Azure

要求

若要成功执行连续部署,目录结构须与 Azure Functions 预期的基本文件夹结构兼容。

特定函数应用中所有函数的代码均位于包含主机配置文件的根项目文件夹中。 host.json 文件包含特定于运行时的配置,并位于函数应用的根文件夹中。 bin 文件夹包含函数应用所需的包和其他库文件。 函数应用所需的特定文件夹结构因语言而异:

函数应用中的所有函数必须共享相同的语言堆栈。

生成提供程序

生成代码项目是部署过程的一部分。 特定的生成过程取决于特定的语言堆栈、操作系统和托管计划。 可以根据特定的托管,在本地或远程完成生成。 有关详细信息,请参阅远程构建

Functions 支持以下生成提供程序:

Azure Pipelines 是 Azure DevOps 中的服务之一,也是 Azure Repos 项目的默认生成提供程序。 还可以使用 Pipelines 从 GitHub 生成项目。 在 Pipelines 中,有一个专为部署到 Azure Functions 而设计的 AzureFunctionApp 任务。 此任务提供对项目生成、打包和部署方式的控制。

可以使用哪些生成提供程序的选项取决于特定的代码部署源。

部署中心

Azure 门户为函数应用提供部署中心,从而使得配置持续部署更加轻松。 配置持续部署的方式取决于代码所在的特定源代码管理,以及所选生成提供程序

Azure 门户中,浏览到函数应用页,然后在左窗格中的“部署”下选择部署中心

在 Azure 门户中选择源存储库的 Function App 部署中心的屏幕截图。

从以下支持选项之一中选择存储库类型,在其中维护项目代码:

使用 Azure Pipelines 的 Azure Repos 部署在 Azure DevOps 门户而不是在函数应用中定义。 有关从 Azure Repos 创建基于 Pipelines 的部署的分步指南,请参阅使用 Azure Pipelines 持续交付

部署完成后,指定源中的所有代码将部署到应用。 此时,部署源中的更改会触发将这些更改部署到 Azure 中的函数应用的操作。

注意事项

规划持续部署策略时,应考虑以下注意事项:

  • GitHub 是目前唯一支持在消耗计划上运行的 Linux 应用的持续部署的源,消耗计划是 Python 应用的常用托管选项。

  • Azure 中用于函数部署的单位是函数应用。 函数应用中的所有函数都同一时间部署在同一个包中。

  • 启用连续部署后,在 Azure 门户中将函数代码访问权限配置为“只读”,因为数据源已知位于其他位置。

  • 应始终为过渡槽而不是生产槽配置持续部署。 使用生产槽时,代码更新将直接推送到生产环境,而不会在 Azure 中验证。 相反,在过渡槽中启用持续部署、验证过渡槽中的更新,并在一切正常运行后,可以将过渡槽代码交换到生产中

  • 部署中心不支持为具有入站网络限制的函数应用启用持续部署。 需要直接在 GitHub 或 Azure Pipelines 中配置生成提供程序工作流。 这些工作流还要求将函数应用所在的虚拟网络中的虚拟机用作自承载代理 (Pipelines)自承载运行程序 (GitHub)

应用创建期间的持续部署

目前,在 Azure 门户中创建函数应用时,可以使用 GitHub Actions 从 GitHub 配置持续部署。 可以在“创建函数应用”页上的“部署”选项卡上执行此操作。

如果要使用不同的部署源或生成提供程序进行持续集成,请先创建函数应用,然后返回到门户,在部署中心设置持续集成

为部署启用基本身份验证

默认情况下,创建函数应用时禁用了对 scm 终结点的基本身份验证访问。 这会阻止无法使用托管标识访问 scm 终结点的所有方法进行发布。 在不使用基本身份验证的部署中详细介绍了禁用 scm 终结点给发布带来的影响。

重要

使用基本身份验证时,凭据以明文形式发送。 若要保护这些凭据,在使用基本身份验证时,必须仅通过加密连接 (HTTPS) 访问 scm 终结点。 有关详细信息,请参阅保护部署

若要对 scm 终结点启用基本身份验证,请执行以下操作:

  1. Azure 门户中,导航到你的函数应用。

  2. 在应用的左侧菜单中,选择“配置”>“常规设置”。

  3. 将“SCM 基本身份验证发布凭据”设置为“打开”,然后选择“保存”。

后续步骤