Azure 应用服务在 ARM 模板部署期间暂时不可用。这是预期的吗?

Azure App Service temporarily unavailable during ARM template deployment. Is this expected?

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

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

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

我认为 ARM 模板是用来指定系统配置的。所以在部署时,第一步是验证步骤,当没有变化时,ARM 模板不会对系统做任何事情。但这似乎是一个错误的假设。

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

this document中描述,如果该资源已经存在于资源组中,并且其设置不变,则不对该资源进行任何操作。 在增量模式下重新部署现有资源时,将重新应用所有属性。这些属性不是增量添加的。

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