练习 - 通过使用部署槽位来部署 Web 应用
准备好交换两个槽时,请确保已将正确的配置应用于已交换的槽。
假设你已完成测试社交媒体 Web 应用的版本 2。 现在,想要将该版本部署到生产环境。 同时希望通过自动交换应用的未来版本来进一步简化部署。
此处介绍如何手动和自动交换。
配置槽设置
在部署 Web 应用版本 2 之前,先配置槽设置。 此处配置的设置不会对演示应用产生影响。 本练习的目的仅在于了解在交换槽时的配置的工作方式。
若要配置槽设置,请执行以下操作:
从 Azure 门户中的“所有资源”视图转到 Web 应用生产槽的“概述”页。
导航到部署槽位的“配置”窗格。
选择“+ 新建应用程序设置”。 添加名为“ENVIRONMENT_NAME”且值为“production”的新设置。 选中“部署槽位设置”框使其成为槽位设置。 选择“确定”。
添加名为“APP_VERSION”的另一个设置并输入值“1”。 不要使其成为槽设置。 选择“确定”。
在顶部菜单栏中,选择“保存”,然后选择“继续”。
在过渡槽上重复上述步骤,但使用以下值:
名称 值 部署槽位设置 ENVIRONMENT_NAME staging 是 APP_VERSION 2 否
交换槽
现在已在过渡槽中对 Web 应用版本 2 进行了测试,可以通过交换槽来部署该应用。 执行以下步骤:
若要确保配置的是生产槽,请选择“所有资源”,然后选择 Web 应用的生产槽。
在左侧菜单窗格的“部署”下,选择“部署槽位”>“交换”。
请确保即将交换过渡槽和生产槽。 请注意交换将如何影响设置。 将在槽之间交换 APP_VERSION 设置的值,但不会交换 ENVIRONMENT 槽设置的值。 选择“交换”。
完成交换后,转到生产槽 Web 应用的概述页面,然后选择“浏览”。 此时会在新的浏览器选项卡中显示 Web 应用。请注意,Web 应用版本 2 现已在生产环境中。
关闭浏览器选项卡。
为过渡槽配置自动交换
假设现在正在使用部署槽位,并需要启用持续部署。 可以使用 Web 应用的自动交换功能来完成此操作。 在使用自动交换的系统中,将新代码部署到过渡槽时,Azure 会自动对其进行预热,并通过交换过渡槽和生产槽将其部署到生产环境。 若要配置自动交换,请按照下列步骤进行操作:
转到过渡槽的 Web 应用的“配置”窗格,然后导航到“常规设置”选项卡。
将“自动交换已启用”设置为“打开”。
在“自动交换部署槽位”列表中,选择“生产”,然后选择“保存”和“继续”。
部署新代码并将其自动交换到生产环境
现在将修改代码,以创建 Web 应用版本 3。 将其部署到过渡槽时,会看到正在运行自动交换。 请执行以下步骤:
如果尚未运行,请在 Cloud Shell 的右侧重启编辑器。
cd ~/demoapp/app-service-web-dotnet-get-started/ code .
在代码编辑器左侧的“文件列表”中,展开“aspnet-get-started”>“视图”>“主页”,然后选择“Index.cshtml”。
找到以下代码。
<h1>Web App Version 2</h1>
将该代码替换为此代码。
<h1>Web App Version 3</h1>
若要保存更改,请按 Ctrl+S。
在 Cloud Shell 中运行以下命令。 根据提示输入部署密码。
git add . git commit -m "Third version of web app." git push staging
等待部署完成。 即将完成文本输出时,你会看到一条消息,指示部署已请求自动交换到生产槽。
在 Azure 门户中,转到生产槽 Web 应用的“概述”页,然后选择“浏览”。 此时会在新的浏览器选项卡中显示 Web 应用的第三版。如果显示的是旧版本,可能需要稍等片刻,然后刷新页面。 交换操作是原子操作,会立即发生,但在运行之前,应用服务需要一些时间准备交换操作。
回滚新版本
假设将应用版本 3 部署到生产环境出现了意外问题。 若要快速解决该问题,可以通过再次交换槽来回滚到站点的以前版本。
转到生产槽的 Web 应用的“部署槽位”窗格。
交换过渡槽和生产槽。
完成交换后,选择概述页面上的“浏览”,最后再查看一次应用。 你将看到版本 2 已重新部署到生产环境。