首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Http触发器Azure函数v2 (python)按照预期执行整个逻辑,但在web请求4分钟后给504个网关超时

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

Stack Overflow用户
提问于 2020-02-04 17:31:02
回答 2查看 2.2K关注 0票数 0

我已经创建了一个Http触发的Python函数,它需要3-10分钟来处理整个业务逻辑,具体取决于数据大小。

当使用postman或python请求触发此函数时,它只等待4分钟的响应。如果函数在那个时候执行,它会给出预期的响应,否则它会返回504 Gateway超时错误。即使在请求端提供了504个错误,azure函数仍然按照预期处理整个负载,并且不会失败。

由于请求的响应负责对线中的下一个步骤,所以对我来说捕获它变得非常重要。我试过了Get和POST请求。

有人能帮我克服这个问题吗?

EN

回答 2

Stack Overflow用户

发布于 2020-02-04 19:08:49

如前所述,这里

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

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

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

票数 4
EN

Stack Overflow用户

发布于 2020-05-05 20:35:11

最后,我想出了解决我面临的问题的办法。

让我在此重申我的完整设想:

完全场景:我有一个ADF管道,Azure函数是它的组件之一,其次是其他各种组件。当我的AF需要大约30分钟来执行业务逻辑,并且在4分钟后由AF自动抛出默认超时响应时,就会出现最初的问题,这会破坏流程,并且不会执行AF管道中的下一个项目,在理想的情况下,AF组件成功完成后应该运行。 解决方案:I将一条管道分解为2,并使用azure逻辑应用程序连接这两条管道。现在让我解释一下点之间的联系。 我将azure函数转换为在一个恶魔线程中处理所有占用时间的任务,并返回对我的HTTP请求的响应。这解决了我的4分钟超时问题。现在,第二个问题是在Azure函数(计时任务)完成后触发管道中的下一个组件。因此,我创建了一个http触发器逻辑应用程序,并在Azure函数的任务完成结束时触发了它。这个逻辑应用程序转向,触发下一个管道,并以级联的方式执行组件.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60062663

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档