大约一年前,Azure Web App插槽交换是“无缝的” - 一旦完成,新实例就会热身接受新请求而不会有任何延迟。
现在,当我将STAGING
的插槽交换到PRODUCTION
时,即使在对STAGING
进行测试以热身应用程序之后,交换也会产生许多预热时间。
这怎么可能改变,我该怎么做才能确保我的应用程序在交换期间保持100%可访问?
您是否对插槽配置进行了任何更改?
我注意到有些事情会导致交换在生产热身之后没有立即出现,如果你想一想它们会有意义:
<system.webserver>
<applicationInitialization>
<add initializationPage="/" />
</applicationInitialization>
</system.webServer>
如果您需要预热超过Web应用程序的根目录,请尝试自定义预热配置
这怎么可能改变,我该怎么做才能确保我的应用程序在交换期间保持100%可访问?
据我所知,通常警告操作应该在暂存插槽中完成,然后再将其交换到生产环境中。这可以消除部署Web应用程序时的停机时间。流量重定向是无缝的,并且交换操作不会丢弃任何请求。 Ruslan写的this blog解释了当一个临时插槽换成生产时发生的动作序列,你可以阅读它。正如加勒特所说,如果它没有完全热身,custom warm-up actions可能会有所帮助。