通过交换部署槽位来部署 Web 应用

已完成

在交换槽时,可以精确控制 Web 应用的行为和配置。

假设你要为生产和过渡设置部署槽位。 你要在过渡槽中对新版社交媒体 Web 应用进行测试。 现在是时候将该新版本部署到生产环境了。 你希望顺利部署应用并且配置正确。

本文介绍用于将 Web 应用转换到生产环境中的正确配置。

管理用于交换的配置

交换两个槽时,应用的配置会随应用一起传输到新槽。 可以通过将各个应用程序设置和配置字符串配置为槽设置来替代这种行为

例如,假设你有两个数据库。 一个用于生产,另一个用于验收测试。 你始终希望过渡槽中的应用版本使用测试数据库。 生产槽中的应用版本应始终使用生产数据库。 为此,可以将数据库连接字符串配置为槽设置。

配置槽设置

若要查看并配置设置以进行交换,请转到 Web 应用资源并执行以下步骤:

  1. 在 Azure 门户菜单上或在门户主页中,选择“所有资源”,然后选择要配置的部署槽位

  2. 转到“配置”窗格

  3. 在“应用程序设置”选项卡上,观察感兴趣的设置在“部署槽位设置”字段中是否包含复选标记。 若要设置或取消设置给定设置的复选标记,请选择该设置的铅笔按钮进行编辑,然后将“部署槽设置”复选框切换到所需的值,再选择“确定”

    Screenshot of slot settings configuration in the Azure portal.

    Screenshot of the toggle deployment slot setting in the Azure portal.

  4. 完成后,在“配置”窗格上选择“保存”以保存设置

在 Azure 门户中交换槽

若要在 Azure 门户中交换槽,请执行以下操作:

  1. 在 Azure 门户菜单或“主页”中,选择“所有资源”,然后转到 Web 应用的任何部署槽位,并选择“部署槽位”窗格

  2. 选择“交换”。

  3. 在“交换”对话框中,可选择源槽和目标槽,然后查看将应用于已交换的槽的设置摘要

    Screenshot of swapping two slots in the Azure portal.

了解槽交换预览

交换槽时,交换主机名之前,目标槽(通常为生产槽)中的设置会应用到源槽中的应用版本。 此时可能会发现问题。 例如,如果将数据库连接字符串配置为槽设置,则新版 Web 应用将使用现有的生产数据库。 如果忘记在交换之前升级生产数据库中的数据库架构,则在新应用版本尝试使用旧架构时,可能会看到错误和异常。

为帮助在应用投入生产之前发现问题,Azure 应用服务提供了带预览的交换功能。 选择此选项时,交换分两个阶段进行:

  • 第 1 阶段:目标槽的槽设置应用于源槽中的 Web 应用。 然后,Azure 会预热源槽。 此时,交换操作将暂停,以便可以对源槽中的应用进行测试,以确保适用于目标槽配置。 如果没有发现任何问题,请开始下一阶段。
  • 第 2 阶段:交换两个站点的主机名。 现在,源槽中的应用版本接收其槽设置。

重要

在过渡槽中全面测试 Web 应用。 消除非槽设置的代码 bug 和问题。 带预览的交换功能只能帮助找出并消除由生产槽设置引起的问题。 请确保在将任意交换启动到生产环境之前一切正常。

预览槽交换

若要使用带预览的交换功能,请选择“执行带预览的交换”,查看设置,然后选择“启动交换”

Screenshot of swapping two slots with a preview.

通过链接可预览站点的新版本。 预览中将应用目标槽中的槽设置。 如果希望继续,请选择“完成交换”

自动交换

自动交换为自动化部署管道带来基于交换的部署的不停机和简单回滚优势。 配置槽进行自动交换时,只要将代码或内容推送到该槽中,Azure 都会对其进行自动交换。

使用自动交换时,交换前无法在过渡槽中测试新的应用版本。 自动交换主要使需要实现不停机部署和简单自动化部署管道的用户受益。

如果希望在转换前能够进行测试,则需要更复杂的部署管道来请求槽转换本身。 或者,也可以部署到专用于测试的单独槽。

注意

自动交换在 Linux 上的应用服务中不可用。

配置自动交换

若要为槽配置自动交换,请转到 Azure 门户中槽的“配置”>“常规设置”窗格。 在“部署槽位”下,将“自动交换已启用”设置为“开”,从下拉列表中选择目标槽,然后选择顶部菜单栏中的“保存”

Screenshot of auto swap configuration in the Azure portal.

此选项仅适用于除生产槽位以外的槽位。