首页 > 解决方案 > Azure 应用服务在 ARM 模板部署期间暂时不可用。这是预期的吗?

问题描述

我们有一个带有 ARM 模板部署的 Azure DevOps 发布管道,作为每个发布的开始。我们这样做是为了确保我们的 Azure 资源与我们的存储库中配置的 ARM 模板保持同步。

我预计如果有变化,Azure App Service 将重新启动,但如果没有变化(部署只是验证应用程序仍然同步),则不需要重新启动。但在这种情况下,Azure App Service 似乎无论如何都会重新启动,我们的用户可能会收到“服务不可用”消息(几秒钟)。这只是短暂的停机时间,但仍然如此。类似于交换的停机时间。

资源的“Web App Restarted”选项卡确实提供了一些信息。它指出有 2 次重新启动并显示消息“User(Site Binding Change)”。其中一个我可以从我们在 ARM 模板部署后执行的交换中理解。所以看起来在 ARM 模板部署期间它做了一个“站点绑定更改”。为什么会这样呢?

我认为 ARM 模板旨在指定系统配置。因此,在部署时,第一步是验证步骤,当没有更改时,ARM 模板不会对系统做任何事情。但这似乎是一个不正确的假设。

有人可以确认这种预期行为吗?或者如果我配置错误?

标签: azureazure-devopsazure-web-app-servicecontinuous-deploymentazure-resource-manager

解决方案


本文档中描述,如果资源组中已经存在该资源且其设置未更改,则对该资源不进行任何操作。在增量模式下重新部署现有资源时,将重新应用所有属性。属性不会增量添加。

为了尽量减少随机冷启动,您可以将此应用设置 WEBSITE_ADD_SITENAME_BINDINGS_IN_APPHOST_CONFIG 设置为 1。请参见此处


推荐阅读