Azure devops 在使用部署槽部署Azure功能时,如何避免主机重启?

Azure devops 在使用部署槽部署Azure功能时,如何避免主机重启?,azure-devops,azure-functions,azure-pipelines,azure-functions-runtime,azure-deployment-slots,Azure Devops,Azure Functions,Azure Pipelines,Azure Functions Runtime,Azure Deployment Slots,我将管道配置为对Azure功能执行零停机时间部署。为此,我采取了以下步骤: 创建插槽 部署到插槽 使用预览开始交换 完全互换 我对这个is过程的理解是,所有重启都应该只发生在预览槽上(所以只有JobHost应该重启),并且在最终交换之前应该有一个位置。然而,我在ApplicationInsight上注意到,托管停止了,这导致在我点击函数时出现了on503code。有没有办法避免这种情况?我不确定这是否重要,但我使用高级计划。您无法避免重新启动,但如果您的功能需要,您可以使用自定义计划 交换操

我将管道配置为对Azure功能执行零停机时间部署。为此,我采取了以下步骤:

  • 创建插槽
  • 部署到插槽
  • 使用预览开始交换
  • 完全互换

我对这个is过程的理解是,所有重启都应该只发生在预览槽上(所以只有JobHost应该重启),并且在最终交换之前应该有一个位置。然而,我在ApplicationInsight上注意到,
托管停止了
,这导致在我点击函数时出现了on
503
code。有没有办法避免这种情况?我不确定这是否重要,但我使用高级计划。

您无法避免重新启动,但如果您的功能需要,您可以使用自定义计划

交换操作将等待预热完成,然后再与目标交换进行交换。您可以在
web.config
文件中对此进行配置,示例如下:

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

您还可以使用以下一个或两个应用程序设置自定义预热行为:

  • WEBSITE_SWAP_WARMUP_PING_PATH:PING预热站点的路径。通过指定以斜杠开始的自定义路径作为值来添加此应用程序设置。例如/statuscheck。默认值为/
  • 网站交换预热状态:预热操作的有效HTTP响应代码。使用逗号分隔的HTTP代码列表添加此应用程序设置。例如200202。如果返回的状态代码不在列表中,则预热和交换操作将停止。默认情况下,所有响应代码都有效

我能够实现零停机时间部署设置变量
网站\u将\u APPHOST\u CONFIG中的\u SITENAME\u绑定添加到
1
。欲了解更多信息,请查看。其中一个缺点是部署期间处理请求的速度缓慢

我还建议大家关注关于zer/miniam停机部署的讨论