use*_*392 7 azure azure-web-app-service azure-functions
我正在通过 VS 发布窗口向我的 Function 应用程序部署更新。我设置了一个启用自动交换的部署槽。我通过 VS 的更新将进入插槽。问题是,在发布成功之后,当我测试我的 API 端点时,我短暂地收到了 503 错误。我的印象是自动交换是无缝的,最终用户不会遇到这种中断。我错过了什么吗?如何让我的部署不被用户注意到?
切换到 API Management 或 Traffic Manager 之类的东西显然是一种选择,但插槽旨在完全按照您的意愿行事,并且它们应该按照您期望的方式工作。
我稍微调查了一下。不幸的是,我可以重现您的问题,这让我感到惊讶。将 Azure Functions 与插槽一起使用时,有些事情感觉有点不对劲,所以可能隐藏着一些奇怪的东西。
在官方文件没有提到这事,但是,恰恰相反:
流量重定向是无缝的;由于交换,没有请求被丢弃。
如果函数在交换期间正在运行,则继续执行并将下一个触发器路由到交换的应用程序实例。
您甚至不需要使用自动交换。只需发布到两个插槽并手动交换插槽。在观察响应时,可以看到以下模式:
我试过:
这对我来说似乎是一个错误。我建议您创建一个支持案例,也许在Github 上创建一个问题。如果我在接下来的几天内找到时间,我可能会自己这样做。另见本期:
https://github.com/Azure/Azure-Functions/issues/862
编辑:链接的 GitHub 问题以及Ron 提到的中等文章指出您可以设置WEBSITE_ADD_SITENAME_BINDINGS_IN_APPHOST_CONFIG为1,这应该有助于解决 503 错误。这是 AppService文档中非常深入的记录行为。我不明白为什么没有提到 Azure Functions。
| 归档时间: |
|
| 查看次数: |
680 次 |
| 最近记录: |