Azure 函数 - 函数主机不是 运行

Azure functions - Functions host is not running

我的 azure 函数运行状况检查一直收到错误 503,它说错误 503。函数主机不是 运行。这是非常不一致的,而且每隔几天才发生一次,我正在使用消费计划,但正在研究高级计划是否可以解决这个问题。

根据 this thread, one possible cause of 503 service-unavailable responses is when the service consumes more memory than what is available under the consumption (serverless) plan, causing the service to be evicted. Switching to a dedicated hosting plan can fix this issue. According to Microsoft's documentation,该函数一次最多允许 1,536MB 内存。当然,也可能是您的函数超出了与该计划相关的任何其他服务限制,因此我的建议是添加检测和防御性代码。

在Azure Functions中,503服务不可用的原因如下:

  • 函数主机是down/restarting

  • 后台服务器未运行/分配导致的平台问题

  • 内存leak/issue从导致后端服务器的代码到return503

要深入了解函数主机相关问题,请查看“诊断和解决问题”边栏选项卡函数应用程序和 select“函数应用程序关闭或报告”检测器。此检测器将显示有关函数应用及其基础结构的所有诊断信息。

  • 503 service unavailable 有时会在函数花费超过 5 分钟才能 return 消费计划中的 HTTP 响应时出现。无论函数应用超时设置如何,230 秒是 HTTP triggered function 可以响应请求的最长时间。 对于更长的处理时间,请使用 Azure Durable Functions 异步模式。参考这个link.

  • 我们不应该在生产环境中频繁更改应用程序设置。如果您更新应用程序设置,应用程序将重新启动。在这种情况下,您将收到 503 错误。为了避免这种情况,您可以使用 slot feature


Function host is not running

此问题是由于 host.json 无效造成的。要进行诊断,最好查看 Azure 门户中日志流中的函数主机日志。

少数错误及此类错误的解决方法是:

  • 如果您有任何 startup.cs class,请检查在 Application Insights 中记录错误的位置是否有可用的错误。
  • 其中一个原因是缺少应用程序设置。确保你也publish local settings

如果它没有帮助,那么原因之一可能是平台问题,为了确认这一点,我们需要查看后端日志,了解在那段时间发生了什么导致 503 错误。
您可以与 Microsoft 一起创建支持票证以进一步协助您。