练习 - 通过使用部署槽位来部署 Web 应用

已完成

准备好交换两个槽时,请确保已将正确的配置应用于已交换的槽。

假设你已完成测试社交媒体 Web 应用的版本 2。 现在,想要将该版本部署到生产环境。 同时希望通过自动交换应用的未来版本来进一步简化部署。

此处介绍如何手动和自动交换。

配置槽设置

在部署 Web 应用版本 2 之前,先配置槽设置。 此处配置的设置不会对演示应用产生影响。 本练习的目的仅在于了解在交换槽时的配置的工作方式。

若要配置槽设置,请执行以下操作:

  1. 从 Azure 门户中的“所有资源”视图转到 Web 应用生产槽的“概述”页。

  2. 导航到部署槽位的“配置”窗格。

  3. 选择“+ 新建应用程序设置”。 添加名为“ENVIRONMENT_NAME”且值为“production”的新设置。 选中“部署槽位设置”框使其成为槽位设置。 选择“确定”

  4. 添加名为“APP_VERSION”的另一个设置并输入值“1”。 不要使其成为槽设置。 选择“确定”

  5. 在顶部菜单栏中,选择“保存”,然后选择“继续”

  6. 在过渡槽上重复上述步骤,但使用以下值:

    名称 部署槽位设置
    ENVIRONMENT_NAME staging
    APP_VERSION 2

交换槽

现在已在过渡槽中对 Web 应用版本 2 进行了测试,可以通过交换槽来部署该应用。 执行以下步骤:

  1. 若要确保配置的是生产槽,请选择“所有资源”,然后选择 Web 应用的生产槽。

  2. 在左侧菜单窗格的“部署”下,选择“部署槽位”>“交换”。

    Screenshot of starting a swap.

  3. 请确保即将交换过渡槽和生产槽。 请注意交换将如何影响设置。 将在槽之间交换 APP_VERSION 设置的值,但不会交换 ENVIRONMENT 槽设置的值。 选择“交换”。

    Screenshot of completing a swap.

  4. 完成交换后,转到生产槽 Web 应用的概述页面,然后选择“浏览”。 此时会在新的浏览器选项卡中显示 Web 应用。请注意,Web 应用版本 2 现已在生产环境中。

  5. 关闭浏览器选项卡。

为过渡槽配置自动交换

假设现在正在使用部署槽位,并需要启用持续部署。 可以使用 Web 应用的自动交换功能来完成此操作。 在使用自动交换的系统中,将新代码部署到过渡槽时,Azure 会自动对其进行预热,并通过交换过渡槽和生产槽将其部署到生产环境。 若要配置自动交换,请按照下列步骤进行操作:

  1. 转到过渡槽的 Web 应用的“配置”窗格,然后导航到“常规设置”选项卡

  2. 将“自动交换已启用”设置为“打开”。

  3. 在“自动交换部署槽位”列表中,选择“生产”,然后选择“保存”和“继续”

    Screenshot of configuring auto swap.

部署新代码并将其自动交换到生产环境

现在将修改代码,以创建 Web 应用版本 3。 将其部署到过渡槽时,会看到正在运行自动交换。 请执行以下步骤:

  1. 如果尚未运行,请在 Cloud Shell 的右侧重启编辑器。

    cd ~/demoapp/app-service-web-dotnet-get-started/
    code .
    
  2. 在代码编辑器左侧的“文件列表”中,展开“aspnet-get-started”>“视图”>“主页”,然后选择“Index.cshtml”。

  3. 找到以下代码。

    <h1>Web App Version 2</h1>
    
  4. 将该代码替换为此代码。

    <h1>Web App Version 3</h1>
    
  5. 若要保存更改,请按 Ctrl+S

  6. 在 Cloud Shell 中运行以下命令。 根据提示输入部署密码。

    git add .
    git commit -m "Third version of web app."
    git push staging
    

    等待部署完成。 即将完成文本输出时,你会看到一条消息,指示部署已请求自动交换到生产槽。

  7. 在 Azure 门户中,转到生产槽 Web 应用的“概述”页,然后选择“浏览”。 此时会在新的浏览器选项卡中显示 Web 应用的第三版。如果显示的是旧版本,可能需要稍等片刻,然后刷新页面。 交换操作是原子操作,会立即发生,但在运行之前,应用服务需要一些时间准备交换操作。

回滚新版本

假设将应用版本 3 部署到生产环境出现了意外问题。 若要快速解决该问题,可以通过再次交换槽来回滚到站点的以前版本。

  1. 转到生产槽的 Web 应用的“部署槽位”窗格。

  2. 交换过渡槽和生产槽。

  3. 完成交换后,选择概述页面上的“浏览”,最后再查看一次应用。 你将看到版本 2 已重新部署到生产环境。