我有一个从 APIM > 功能 > 逻辑应用 > D365 调用的逻辑应用(基于 http 请求触发器的同步调用)。当我第一次调用它时(一天后或几个小时后),花费的时间比平时更长(大约 25-30 秒)并导致网关超时错误。
当我第二次调用它时,它通常会在 8-10 秒内完成操作,没有超时。
错误消息是典型的: 模板操作“Response__to_be_displayed”的执行失败:客户端应用程序在等待服务响应时超时。这意味着工作流的响应时间比分配的超时值要长。客户端应用程序和服务之间维护的连接将关闭,客户端应用程序将收到 HTTP 状态代码 504 网关超时。
在保持模式同步的同时,我认为这不会导致超时问题。我已经检查过这个link还有这个one也是,但这并不能解决我的问题。 我想保持调用同步(这只是 25-30 秒的调用),这是否与 APIM 策略或逻辑应用中可以增加此速度的任何设置有关?
最佳答案
您可以增加逻辑应用和 APIM 中的超时。对于 APIM,我们实现一项策略,该策略将规定超时以及在逻辑应用中的应用设置。
但是对于APIM,如果超时超过240秒,那么APIM将不可靠,建议寻找该函数的实现。
现在要增加 APIM 中的超时,我们必须设置转发请求策略,并且该策略具有超时属性,您可以将其设置为所需的限制。
转到 APIM 中的策略片段并将以下内容添加到策略中
<forward-request timeout="60"/>
现在关于逻辑应用程序,我们可以通过设置应用程序设置来设置自定义超时。为此,您需要两项设置,一项是阈值,另一项是超时。您必须将这些添加到应用程序设置中,该应用程序设置位于逻辑应用程序门户的配置下。
调用设置
Runtime.FlowRetentionThreshold
和
Runtime.Backend.FlowRunTimeout
这些设置的值的格式为Days.hours:Minutes:Seconds
,例如:00.00:05:00 这是 5 分钟
- 另请检查您的函数是否正常工作,因为逻辑应用中的工作流超时和 APIM 超时默认值超过了根据您执行任务所需的时间。
引用此msDoc关于逻辑应用程序超时
引用此msdoc APIM 超时。
关于azure - 即使在 30 秒后,逻辑应用也会返回网关超时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73441837/