我是 Azure 逻辑应用的新手,因此这个示例可能看起来没那么有用,但它只是为了学习一些基本的 Azure 逻辑。
我有一个简单的 HTTP 监听器(当收到 HTTP 请求时) 它应该向某个服务发送另一个 HTTP GET 请求并向第一个调用者发送响应。 它看起来像这样: /image/sVQOR.jpg
现在一切正常,直到我发送错误的数据或逻辑应用程序从 HTTP 请求中收到 500 HTTP 错误。
逻辑应用程序在 HTTP 请求中挂起大约 1 分钟并失败。 之后的响应永远不会发送。
如何将逻辑应用返回的响应转发给请求逻辑应用的请求者?
最佳答案
默认情况下,逻辑应用会重试任何失败的请求 4 次,因此当 http 服务返回错误 5xx 时,您会看到运行时间增加。您可以使用自定义重试策略配置此行为。查看更多https://azure.microsoft.com/en-us/updates/customizable-retry-policies-in-logic-apps/
默认情况下,逻辑应用步骤依赖于任何相关操作的成功。这会导致当 http 操作失败时您的响应操作被跳过。
您有几个选项可以解决此问题:
在代码 View 中,您可以更新
runAfter
属性,以便无论 http 操作是否成功,该操作都会运行"runAfter": { "Condition": [ "Succeeded", "Failed" ] }
在 http 操作的 http 状态代码上向逻辑应用添加条件,然后为每种情况指定一个专用的
响应
操作
关于Azure逻辑应用HTTP请求500,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39484992/