Azure逻辑应用程序HTTP请求500

Azure逻辑应用程序HTTP请求500,azure,azure-logic-apps,Azure,Azure Logic Apps,我是Azure逻辑应用程序的新手,所以这个示例看起来可能没有那么有用,但它只是为了学习一些基本的Azure逻辑 我得到了一个简单的HTTP侦听器(当收到HTTP请求时) 然后,它应该向某个服务发送另一个HTTP GET请求,并向第一个调用方发送响应。 看起来是这样的: 现在一切都很正常,直到我发送了错误的数据,或者逻辑应用程序从HTTP请求中得到了500个HTTP错误 然后Logic应用程序在HTTP请求中挂起约1分钟并失败。 之后的响应永远不会发送 如何将Logic app返回的响应转发给请

我是Azure逻辑应用程序的新手,所以这个示例看起来可能没有那么有用,但它只是为了学习一些基本的Azure逻辑

我得到了一个简单的HTTP侦听器(当收到HTTP请求时) 然后,它应该向某个服务发送另一个HTTP GET请求,并向第一个调用方发送响应。 看起来是这样的:

现在一切都很正常,直到我发送了错误的数据,或者逻辑应用程序从HTTP请求中得到了500个HTTP错误

然后Logic应用程序在HTTP请求中挂起约1分钟并失败。 之后的响应永远不会发送


如何将Logic app返回的响应转发给请求Logic app的请求者?

正如您所知,500是未知错误,因此logicapp引擎停止处理任何即使在重试后仍抛出500的操作。对于这种特定情况,您需要设置logicapp诊断规则“操作失败”/“运行失败”。在规则中,您可以配置发送电子邮件和/或配置webhook以对事件作出反应,因为您知道500是未知错误,因此logicapp engine停止处理任何即使在重试后仍抛出500的操作。对于这种特定情况,您需要设置logicapp诊断规则“操作失败”/“运行失败”。在该规则中,您可以配置发送电子邮件和/或配置webhook以对事件作出反应。默认情况下,逻辑应用程序将重试任何失败的请求4次,因此当http服务返回错误5xx时,您会看到运行时间增加。您可以使用自定义重试策略配置此行为。看更多

默认情况下,逻辑应用程序步骤依赖于任何依赖操作的成功。这将导致在http操作失败时跳过响应操作

您有几个选项可以解决此问题:

  • 在代码视图中,您可以更新
    runAfter
    属性,以便无论http操作是否成功,操作都会运行

    "runAfter": { "Condition": [ "Succeeded", "Failed" ] }
    
  • 在http操作的http状态代码上向逻辑应用程序添加一个条件,然后为每种情况指定一个专用的
    响应
    操作


  • 默认情况下,逻辑应用程序将重试任何失败的请求4次,因此当http服务返回错误5xx时,您会看到运行时间增加。您可以使用自定义重试策略配置此行为。看更多

    默认情况下,逻辑应用程序步骤依赖于任何依赖操作的成功。这将导致在http操作失败时跳过响应操作

    您有几个选项可以解决此问题:

  • 在代码视图中,您可以更新
    runAfter
    属性,以便无论http操作是否成功,操作都会运行

    "runAfter": { "Condition": [ "Succeeded", "Failed" ] }
    
  • 在http操作的http状态代码上向逻辑应用程序添加一个条件,然后为每种情况指定一个专用的
    响应
    操作


  • 您可以将Http操作的重试策略和超时设置更新为


    您可以将Http操作的重试策略和超时设置更新为


    你的意思是对的。尝试添加retryPolicy时出现以下错误:在“FlowTemplateAction”类型的对象上找不到成员“retryPolicy”。路径“properties.definition.actions.HTTP.retryPolicy”,这是我的代码(条件已经成功和失败):对于4xx错误,它工作正常,只有5xx超时需要1分钟。超时后,响应不是firedLooks,就像您直接在操作下指定retryPolicy一样。它需要位于inputs属性下。关于故障,逻辑应用程序仅重试间歇性故障(因此5xx状态代码),4xx状态代码被视为确定性故障,因此不重试I是否可以覆盖4次重新运行尝试行为?在Logic App designer中是否有这样做的地方,或者我必须编辑json?你的意思是对的。尝试添加retryPolicy时出现以下错误:在“FlowTemplateAction”类型的对象上找不到成员“retryPolicy”。路径“properties.definition.actions.HTTP.retryPolicy”,这是我的代码(条件已经成功和失败):对于4xx错误,它工作正常,只有5xx超时需要1分钟。超时后,响应不是firedLooks,就像您直接在操作下指定retryPolicy一样。它需要位于inputs属性下。关于故障,逻辑应用程序仅重试间歇性故障(因此5xx状态代码),4xx状态代码被视为确定性故障,因此不重试I是否可以覆盖4次重新运行尝试行为?在Logic App designer中是否有这样做的地方,或者我必须编辑json?当我添加另一个响应时,没有任何更改,我的代码也适用于4xx错误,但不适用于5xx…正如您所知,500是未知错误,因此logicapp引擎停止处理任何操作,即使在重试后仍会抛出500。对于这种特定情况,您需要设置logicapp诊断规则“操作失败”/“运行失败”。在规则中,您可以配置发送电子邮件和/或配置webhook以对事件作出反应。当我添加另一个响应时,没有任何更改,我的代码也适用于4xx错误,但不适用于5xx…正如您所知,500是未知错误,因此logicapp引擎停止处理任何即使在重试后仍持续抛出500的操作。对于这种特定情况,您需要设置logicapp诊断规则“操作失败”/“运行失败”。在规则中,您可以配置发送电子邮件和/或配置webhook以响应事件。请添加您链接的图像的说明。请添加您链接的图像的说明。