交换部署槽

已完成

可以在应用的“部署槽”页上以及“概述”页上交换部署槽 。 将应用从部署槽交换到生产槽之前,请确保生产槽是目标槽,并且已完全根据生产槽中的情况配置了源槽中的所有设置。

手动交换部署槽位

若要交换部署槽:

  1. 转到应用的“部署槽”页,然后选择“交换”。 “交换”对话框显示将要更改的所选源和目标槽中的设置。

  2. 选择所需的“源”和“目标”槽 。 目标通常是生产槽。 此外,选择“源更改”和“目标更改”选项卡,并验证配置更改是否符合预期 。 完成后,可以通过选择“交换”立即交换槽。

    若要了解目标槽在交换实际发生之前如何使用新设置运行,请不要选择“交换”,而是按照下面的“交换(预览)”中的说明进行操作。

  3. 完成后,选择“关闭”以关闭对话框。

带预览的交换(多阶段交换)

在交换到用作目标槽的生产槽之前,请使用交换的设置验证应用的运行。 源槽在交换完成之前也已预热,这对于任务关键型应用程序是可行的。

在执行交换并预览时,应用服务将执行相同的交换操作,但完成第一个步骤后会暂停。 然后,你可以在完成交换之前验证过渡槽中的结果。

如果取消交换,应用服务会重新将配置元素应用到源槽。

若要交换并预览:

  1. 按照交换部署槽位中的上述步骤操作,但选中“通过预览执行交换”复选框。 该对话框显示源槽中的配置在阶段 1 中的更改方式,以及源槽和目标槽在阶段 2 中的更改方式。

  2. 如果已准备好开始交换,请选择“开始交换”。

    第 1 阶段完成后,对话框中会显示通知。 通过转到 https://<app_name>-<source-slot-name>.azurewebsites.net 来预览源槽中的交换。

  3. 准备完成挂起的交换后,在“交换操作”中选择“完成交换”,然后选择“完成交换” 。

    若要取消挂起的交换,请选择“取消交换”。

  4. 完成后,选择“关闭”以关闭对话框。

配置自动交换

自动交换简化了 Azure DevOps 服务场景,在这些场景中,可连续部署应用,无需冷启动且不会对应用的客户产生故障时间。 启用从某个槽到生产槽的自动交换后,每次将代码更改推送到该槽时,应用服务会在源槽中预热后自动将应用交换到生产槽中。

注意

Linux 上的 Web 应用和用于容器的 Web 应用当前不支持自动交换。

若要配置自动交换:

  1. 转到应用的资源页,选择要配置为自动交换的部署槽位。 此设置位于“配置”>“常规设置”页上。

  2. 将“自动交换已启用”设置为“打开”。 为“自动交换部署槽”选择所需的目标槽,然后选择在命令栏上“保存”。

  3. 执行代码推送到源槽。 片刻之后,自动交换就会发生,而更新将反映在目标槽的 URL 上。

指定自定义预热

某些应用在交换之前可能需要执行自定义的预热操作。 web.config 中的 applicationInitialization 配置元素可用于指定自定义初始化操作。 交换操作在与目标槽交换之前等待此自定义预热操作完成。 以下是 web.config 片段的示例。

<system.webServer>
    <applicationInitialization>
        <add initializationPage="/" hostName="[app hostname]" />
        <add initializationPage="/Home/About" hostName="[app hostname]" />
    </applicationInitialization>
</system.webServer>

有关自定义 applicationInitialization 元素的详细信息,请参阅最常见的部署槽位交换故障以及如何修复它们

还可以使用以下一项或两项应用设置来自定义预热行为:

  • WEBSITE_SWAP_WARMUP_PING_PATH:用于对你的站点进行预热的 ping 路径。 通过指定以斜杠开头的自定义路径作为值来添加此应用设置。 例如 /statuscheck。 默认值为 /
  • WEBSITE_SWAP_WARMUP_PING_STATUSES:预热操作的有效 HTTP 响应代码。 使用以逗号分隔的 HTTP 代码列表添加此应用设置。 例如 200,202。 如果返回的状态代码不在列表中,则预热和交换操作会停止。 默认情况下,所有响应代码都是有效的。
  • WEBSITE_WARMUP_PATH:站点上的一个相对路径,当站点重启时(不仅仅是在槽交换期间)应该对其进行 ping 操作。 示例值包括 /statuscheck 或根路径 /

回滚并监视交换

如果在槽交换后目标槽(例如,生产槽)中发生任何错误,请通过立即交换相同的两个槽以将槽恢复到其交换前状态。

如果交换操作需要很长时间才能完成,则可以在活动日志中获取有关交换操作的信息。

  1. 在门户的应用资源页上的左窗格中,选择“活动日志”。

  2. 交换操作在日志查询中显示为 Swap Web App Slots。 可以将其展开,然后选择一个子操作或错误来查看详细信息。