如果Azure Logic App中的作用域操作中的任何操作失败,如何捕获异常详细信息
我已经实现了Azure Logic应用程序来执行我的业务流。对于异常处理,我使用了范围操作。但是我想在范围内的任何操作失败时捕获异常详细信息 处理异常的示例逻辑应用程序流: 函数如果Azure Logic App中的作用域操作中的任何操作失败,如何捕获异常详细信息,azure,azure-logic-apps,Azure,Azure Logic Apps,我已经实现了Azure Logic应用程序来执行我的业务流。对于异常处理,我使用了范围操作。但是我想在范围内的任何操作失败时捕获异常详细信息 处理异常的示例逻辑应用程序流: 函数result()提供作用域中所有操作结果的上下文。函数result()接受单个参数,即作用域的名称,并返回包含该作用域中所有操作结果的数组。这些操作对象包括与actions()对象相同的属性,例如操作的开始时间、结束时间、状态、输入、相关ID和输出。要发送作用域内任何失败操作的上下文,可以轻松地将@result()表达式
result()
提供作用域中所有操作结果的上下文。函数result()
接受单个参数,即作用域的名称,并返回包含该作用域中所有操作结果的数组。这些操作对象包括与actions()
对象相同的属性,例如操作的开始时间、结束时间、状态、输入、相关ID和输出。要发送作用域内任何失败操作的上下文,可以轻松地将@result()
表达式与runAfter
属性配对
要为具有失败结果的作用域中的每个操作运行操作,并将结果数组向下筛选到失败操作,可以将@result()
表达式与筛选器数组操作和for each循环配对。您可以使用过滤后的结果数组,并使用for\u each
循环对每个故障执行操作
下面是一个示例,后面是一个详细的解释,它发送一个HTTP POST请求,其中包含在范围“My\u scope
”内失败的任何操作的响应体:
有关此建议的更多详细信息,请访问
"Filter_array": {
"type": "Query",
"inputs": {
"from": "@result('My_Scope')",
"where": "@equals(item()['status'], 'Failed')"
},
"runAfter": {
"My_Scope": [
"Failed"
]
}
},
"For_each": {
"type": "foreach",
"actions": {
"Log_exception": {
"type": "Http",
"inputs": {
"method": "POST",
"body": "@item()['outputs']['body']",
"headers": {
"x-failed-action-name": "@item()['name']",
"x-failed-tracking-id": "@item()['clientTrackingId']"
},
"uri": "http://requestb.in/"
},
"runAfter": {}
}
},
"foreach": "@body('Filter_array')",
"runAfter": {
"Filter_array": [
"Succeeded"
]
}
}