采用强大的错误处理

错误处理可确保 Power Automate 自动工作流的可靠性和稳健性。 实施这些关键策略以快速有效地识别和解决问题。

配置“运行条件”设置

使用运行条件设置可指定在操作失败、超时、跳过或成功时应发生的情况。 对于每个操作,您都可以设置条件,根据前一个操作的结果确定下一步。 此方法允许您创建用于错误处理的替代路径。 例如,如果操作失败,可以配置发送通知或记录错误详情作为下一个操作。

在本例中,当流在更新行步骤失败时,用户会收到一封电子邮件:

配置运行条件以在更新行操作失败时发送电子邮件的截图。

您还可以使用 Power Automate 中的 workflow() 函数获取流运行的详细信息,包括当前环境 GUID、流名称、流 GUID 和运行 ID。

workflow() json 模式如下:

{
    "type": "object",
    "properties": {
        "id": {
            "type": "string"
        },
        "name": {
            "type": "string"
        },
        "type": {
            "type": "string"
        },
        "location": {
            "type": "string"
        },
        "tags": {
            "type": "object",
            "properties": {
                "flowDisplayName": {
                    "type": "string"
                },
                "environmentName": {
                    "type": "string"
                },
                "logicAppName": {
                    "type": "string"
                },
                "environmentFlowSuspensionReason": {
                    "type": "string"
                },
                "state": {
                    "type": "string"
                },
                "createdTime": {
                    "type": "string"
                },
                "lastModifiedTime": {
                    "type": "string"
                },
                "createdBy": {
                    "type": "string"
                },
                "triggerType": {
                    "type": "string"
                }
            }
        },
        "run": {
            "type": "object",
            "properties": {
                "id": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                }
            }
        }
    } 
}

使用带有 JSON 模式的解析 JSON 操作来解析来自 workflow() 函数的响应。

解析工作流函数的 JSON 的屏幕截图。

使用撰写操作创建流运行 URL。 使用此 URL 可直接链接到通知电子邮件中的流运行,或将其存储到记录错误的表中。

在本示例中,以下内容用作撰写操作的输入:

https://make.powerautomate.com/environments@{body('Parse_JSON')?['tags']?['environmentName']}/flows@{body('Parse_JSON')?['tags']?['logicAppName']}/runs@{body('Parse_JSON')?['run']}

使用“撰写”操作撰写流运行 URL 的截图。

注意

请谨慎使用此选项,因为它会导致过多的自定义日志记录和操作数量增加,从而可能对整体性能产生负面影响。 过度使用会导致反模式,即频繁的警报和操作会降低工作流的效率和效果。

将操作分组到作用域中,以便处理错误

将相关操作分组到作用域中,并使用作用域集体处理错误。 您可以使用作用域实现 try-catch 模式来管理错误。 为主要操作创建“Try”作用域,为错误处理创建“Catch”作用域。 如果主作用域发生错误,可以触发错误处理作用域来管理错误。 将“Catch”范围配置为在“Try”范围失败时运行。

将 Catch 范围配置为仅在 Try 范围失败时运行的屏幕截图。

使用筛选数组操作来过滤结果函数以获取失败的错误。

使用过滤数组操作过滤结果函数响应的截图。

您可以使用创建 HTML 表操作从该响应创建 HTML 表格,以发送电子邮件提醒或将详细信息存储在错误日志表中。

执行重试策略

通过实施指数重试策略,您可以有效地管理暂时性故障并增强自动化工作流的可靠性。 流设置中的重试策略设计用于处理瞬时故障,即通常可以通过重试操作来解决的临时问题。

小费

选择指数重试策略是因为它们可以延长重试时间,增加成功完成操作的机会。

暂时性故障是由于网络问题、服务不可用或其他间歇性问题而发生的暂时性错误。 重试策略可在指定时间间隔后再次尝试执行操作,从而帮助管理这些故障。 了解更多信息:处理瞬时故障的建议

指数重试策略从较短的重试间隔开始,逐渐延长重试间隔。 此方法有助于避免频繁重试使系统不堪重负,并为解决问题留出更多时间。

请考虑以下指数重试策略示例:

  • 第一次重试可能会在 1 分钟后发生。
  • 2 分钟后第二次重试。
  • 4 分钟后第三次重试,依此类推。

指数重试策略可提高成功的可能性,而不会对系统造成过大负载。

要配置重试策略:

  1. 在 Power Automate 中打开流,进入要配置的操作的设置
  2. 选择重试策略下的指数选项,并根据需要配置初始间隔和最大重试次数。
  3. 监视流的性能,并根据需要调整重试设置,以针对特定用例进行优化。

云端流中的“重试”策略设置的屏幕截图。

使用终止操作

使用终止操作停止流并设置特定状态(成功、失败或取消)。 当出现错误需要明确停止流时,可添加终止操作。 例如,如果发生严重错误,可以使用终止操作停止流,并将状态设置为“失败”,确保不再执行其他操作。 提供状态和消息以进一步调试流失败的原因。

配置终止操作的屏幕截图。

实施日志记录和通知

实施日志记录和通知以监视和跟踪错误。 使用操作将错误详细信息记录到数据库、SharePoint 列表或其他存储解决方案中。 设置通知,以便在发生错误时提醒相关利益干系人。 例如,如果检测到错误,请记录错误详细信息,并向支持团队发送电子邮件通知,以便立即关注。

您可以使用 Power Automate 和为云端流运行失败创建警报来设置 Application Insights,而不是使用自定义日志。

使用流补救电子邮件

Power Automate 流服务会针对常见或严重故障(如连接中断或限流问题)向流所有者发送电子邮件警报。 电子邮件警报包括详细的错误信息和故障排除提示。