Http 触发器 Azure Function v2 (python) 按预期执行整个逻辑,但在 Web 请求 4 分钟后给出 504 网关超时

Dev*_*rma 1 azure azure-functions azure-stack

我创建了一个 Http 触发的 Python Azure 函数,根据数据大小需要 3-10 分钟来处理整个业务逻辑。

当使用 postman 或 python web 请求触发此函数时,它只会等待响应直到 4 分钟。如果该函数到那时执行,它将给出预期响应,否则将返回 504 网关超时错误。即使它在请求端给出 504 错误,azure 函数也会按照预期处理整个负载并且不会失败。

由于请求的响应负责管道中的后续步骤,因此捕获它对我来说变得很重要。我已经尝试过 Get 和 POST 请求。

谁能帮我解决这个问题?

sil*_*ent 5

正如这里所述:

无论函数应用超时设置如何,HTTP 触发的函数响应请求所需的最长时间都是 230 秒。这是因为 Azure 负载均衡器的默认空闲超时。对于更长的处理时间,请考虑使用 Durable Functions 异步模式或推迟实际工作并返回立即响应。

所以不是你的Function超时了,而是因为是http触发的,所以是前面的LB。

您应该以不同的方式实现长期运行的流程。例如通过http触发的方式接收数据。这个获取数据并将其放入队列中。然后,您有第二个队列触发的函数,它不会长时间处理并将结果写入某处,例如写入 blob 存储。