超出 Azure 函数主机阈值的线程

Azure Function Host Threshold Exceeded Threads

我在消费计划中有多个 Azure 函数 运行。我还设置了 API 管理。在 Api 管理中,我们有 2 个 Web 测试,每 3-5 分钟对这些功能进行一次测试,并确保它们仍然可用并且可以访问。 Web 测试命中的端点只有以下代码。

[FunctionName("HealthCheck")]
    public static Task<HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "healthcheck")]HttpRequestMessage req, TraceWriter log)
    {
        log.Info("Health Check Triggered");
        return Task.FromResult(req.CreateResponse(HttpStatusCode.OK));
    }

在 运行 一段时间后,函数开始显示 503,并显示主机阈值已超出 [线程] 错误。我不知道是什么导致了这个问题。由于该功能在消费计划而不是应用程序服务计划上,Azure 是否有任何限制阻止此工作?提前感谢您提供任何信息。

Host Health Monitor 功能目前仅在存在这些沙盒限制的消费计划 上有效。该功能默认启用,但可以通过 host.jsonhealthMonitor 部分启用 disabled/configured,例如

{
    "healthMonitor": {
        "enabled": true,
        "healthCheckInterval": "00:00:10",
        "healthCheckWindow": "00:02:00",
        "healthCheckThreshold": 6,
        "counterThreshold": 0.80
    }
}

如果您的 Function App 达到阈值,您会看到记录了 Host thresholds exceeded: [Threads] 之类的错误。 线程:线程数(限制为 512)。

更多细节,你可以参考这个article