Azure devops 在使用部署槽部署Azure功能时,如何避免主机重启?
我将管道配置为对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。有没有办法避免这种情况?我不确定这是否重要,但我使用高级计划。您无法避免重新启动,但如果您的功能需要,您可以使用自定义计划 交换操
- 创建插槽
- 部署到插槽
- 使用预览开始交换
- 完全互换
我对这个is过程的理解是,所有重启都应该只发生在预览槽上(所以只有JobHost应该重启),并且在最终交换之前应该有一个位置。然而,我在ApplicationInsight上注意到,
托管停止了
,这导致在我点击函数时出现了on503
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停机部署的讨论