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

Azure Functions 的连续部署

借助 Azure Functions,可以将源代码管理存储库中所做的更改持续部署到连接的函数应用。 使用此源代码管理集成可实现一个工作流,其中代码更新可触发从项目到 Azure 的生成、打包与部署。

应始终为过渡槽而不是生产槽配置持续部署。 使用生产槽时,代码更新将直接推送到生产环境,而不会在 Azure 中验证。 相反,在过渡槽中启用持续部署、验证过渡槽中的更新,并在一切正常运行后,可以将过渡槽代码交换到生产中。 如果连接到生产槽,请确保只有生产质量代码才会引入集成的代码分支。

本文中的步骤介绍如何使用 Azure 门户中的部署中心在 Azure 中配置对函数应用的连续代码部署。 还可以使用 Azure CLI 配置持续集成。 这些步骤可以面向暂存槽或生产槽。

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

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

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

注意

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

要求

Azure 中用于函数部署的单位是函数应用。 要成功执行持续部署,项目的目录结构须与 Azure Functions 预期的基本文件夹结构兼容。 使用 Azure Functions Core Tools、Visual Studio Code 或 Visual Studio 创建代码项目时,可将 Azure Functions 模板用于创建具有正确目录结构的代码项目。 函数应用中的所有函数都同一时间部署在同一个包中。

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

注意

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

选择生成提供程序

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

重要

为了提高安全性,请考虑使用支持托管标识的生成提供程序,包括 Azure Pipelines 和 Gitub Actions。 应用服务 (Kudu) 服务要求启用基本身份验证,并使用基于文本的凭据。

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 中的函数应用的操作。

在应用创建期间启用持续部署

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

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

为部署启用基本身份验证

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

重要

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

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

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

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

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

后续步骤