【问题标题】:Azure functions - Functions host is not runningAzure 函数 - 函数主机未运行
【发布时间】:2022-06-23 23:53:35
【问题描述】:

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

【问题讨论】:

    标签: azure azure-functions


    【解决方案1】:

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

    • 功能主机已关闭/正在重新启动

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

    • 代码中的内存泄漏/问题导致后端服务器返回 503

    要深入了解函数宿主相关问题,请查看函数应用中的“诊断和解决问题”边栏选项卡,然后选择“功能应用关闭或报告”检测器。此检测器将显示有关函数应用及其基础架构的所有诊断信息。

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

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


    函数主机没有运行

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

    很少有错误和此类错误的解决方法是:

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

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

    【讨论】:

    • 谢谢,我也去看看应用设置
    【解决方案2】:

    根据this thread 的说法,503 服务不可用响应的一个可能原因是服务消耗的内存多于消耗(无服务器)计划下的可用内存,从而导致服务被驱逐。切换到专用托管计划可以解决此问题。根据微软的documentation,似乎该功能一次最多允许1,536MB内存。当然,也可能是您的功能超出了与该计划相关的任何其他服务限制,因此我的建议是防御性地添加检测和代码。

    【讨论】:

    • 我想到了这个,但是 503 错误非常不一致,我不明白为什么函数每次运行时会消耗不同数量的内存。
    • @max14 可能是它超出了其他一些服务限制。请查看我链接的 Microsoft 文档。
    【解决方案3】:

    重新部署 Azure 函数后出现 503。

    原来 Python 版本默认为 3.6,更新到 3.9 并开始工作。

    我使用的是 terraform 和 github 操作

    【讨论】:

      猜你喜欢
      • 2022-09-30
      • 1970-01-01
      • 1970-01-01
      • 2021-11-26
      • 1970-01-01
      • 2021-12-05
      • 2023-01-19
      • 1970-01-01
      • 2021-02-19
      相关资源
      最近更新 更多