优化 Power Automate 触发器

触发器是在 Power Automate 中启动云端流的事件。 例如,要在收到电子邮件时在 Microsoft Teams 中获得通知,您可以设置一个触发器,在电子邮件到达收件箱时启动流。 触发器是流的起点,可以基于各种事件。

触发器的类型

在 Power Automate 中主要有两种类型的触发器。 创建流后,触发器将自行注册,以轮询它连接到的服务,或侦听服务中的事件。 然后,当指定事件发生时,触发器将激活流。

  • 轮询触发器:定期检查(或轮询)服务,查看是否发生了特定事件。

    • 示例:SQL 触发器可能会定期轮询 SQL 服务器,检查是否有新记录或更新记录,或是否有符合特定条件的其他更改。

    • 流关闭行为:当流开启时,所有未处理或待处理的事件都会被处理。 如果您不希望在重新打开流时处理挂起项目,请删除然后重新创建流。

  • Webhook 触发器:实时监听特定事件。 事件发生时,服务会向 Power Automate 发送通知以启动流。

    • 示例:Outlook 触发器会监听收到的电子邮件,并在新邮件到达时立即触发流。 在这种情况下,触发器将侦听 Outlook 服务,并在收到电子邮件后立即触发流。

    • 流关闭行为:当流再次开启时,它会处理流开启后产生的任何新事件。

轮询触发器

注册轮询触发器后,它会每 X 分钟定期检查一次服务,以根据应用于触发器的筛选器检索任何新的或修改的记录/事件的详细信息。 这些检查的频率取决于用户的许可证和上次轮询的时间戳。 每隔 X 分钟,它就会根据此时间戳再次轮询服务。

请注意以下情形:

  • 触发器设置为在创建新的 SQL 记录时激活,并且每分钟(或以指定的时间间隔)轮询 SQL 服务。 该流旨在检索自上次轮询以来创建的任何记录的信息。
  • 如果找到新记录,则触发流。 如果未找到新记录,则跳过运行。
  • 当流停止时(例如,9 月 13 日中午 12:30),触发器会记录此时间戳。
  • 当流重新启动时(例如,太平洋时间 9 月 14 日下午 1:30),触发器会针对上次轮询时间(9 月 13 日中午 12:30)和当前时间(9 月 14 日下午 1:30)之间创建的所有事件轮询服务。

此行为可确保不会丢失任何数据,即使流由于错误或限制而暂时停止也是如此。

请记住:

  • 关闭流不会取消注册触发器。 它只会暂停轮询。 此设计可确保在流重新启动时不会丢失数据。
  • 若要完全重置轮询行为,需要创建流的新副本。 这将在首次打开流时重新注册触发器,您应删除现有流以避免冲突。

Webhook 触发器

Webhook 触发器的操作方式与轮询触发器不同。 Webhook 触发器不会定期检查服务,而是向服务注册以在发生特定事件时接收通知。 以下是 Webhook 触发器的工作原理:

  • 注册:创建 Webhook 触发器时,它会注册服务,以表明它希望接收某些事件的通知。
  • 事件通知:Webhook 是简单的 HTTP 回调,用于提供事件通知。 当指定事件发生时,服务会向 Webhook 触发器发送事件通知,其中包含该事件的所有详细信息。
  • 流激活:Power Automate 允许将 Webhook 用作触发器。 当 Webhook 触发器收到事件通知时,它会激活流,然后执行指定的操作。

了解更多信息:我的触发器正在触发旧事件

设置触发器条件

许多 Power Automate 用户都会遇到这样的问题:每次在数据源中添加新行或修改现有行时,他们的流都会运行。 但是,通常在某些情况下,您只希望流在满足特定条件时执行。 若要实现此行为,需要正确配置触发器。 通过为触发器设置合适的条件,可以确保流仅在必要时运行,从而提高效率并减少不必要的执行。

假设任何提交支出超过 $100 的用户都需要获得经理的批准。 如果未指定触发条件,则流将针对提交的每个支出运行,并且流作者必须指定其他条件来筛选大于 $100 的支出。 通过实施触发条件,可以确保仅在支出超过 $100 时触发流。

在所示示例中,每当添加、修改或删除一行时都会触发一个流。 条件检查金额是否大于 100,如果满足条件,则开始审批。 每次添加、修改或删除表中的数据时,都会启动该流。

使用条件而不是触发器条件的流的屏幕截图。

在此示例中,流包括添加、修改或删除行时操作的触发条件,该条件检查金额是否大于 100,然后启动审批。 只有当金额字段中的值大于 100 时,此流才会启动

使用触发器条件的流的屏幕截图。

小费

Power Automate 中的 OData 过滤器属性是一项强大的功能,可让您根据 Dataverse 数据的变化,为何时触发流定义精确的条件。 您可以指定条件和可以触发流的列的名称。 此方法有助于优化流性能,并确保流仅在必要时运行。

配置并发控制

在某些情况下,您的流可能会与吞吐量有限的数据源交互。 在这种情况下,配置触发器的并发控制有助于更有效地管理流的执行。

默认情况下,当满足云端流触发器的条件时,会同时执行尽可能多的运行。 不过,您可以通过调整并发控制设置来改变这种行为,并发控制允许您限制并发运行的数量,最小为 1,最大为 100。 任何其他运行都将自动排队。

要使用并发控制,请执行以下操作:

  • 限制吞吐量资源:如果您的自动化依赖于不支持并行执行的内部资源,配置并发控制可以防止资源超载。

  • 防止争用条件:限制并发可确保一次只运行一个流实例,避免并行执行可能导致脏读(dirty-read)的争用条件。

要配置并发控制:

  1. 在 Power Automate 门户中,打开要配置的流。
  2. 选择触发器。
  3. 设置中启用并发控制选项。
  4. 指定要允许的最大并发运行数。 您可以将数字设置在 1 到 100 之间。
  5. 保存更改,将并发控制设置应用到流中。

设置触发并发控制的截图。

重要考虑因素

  • 可逆操作:并发控制设置一旦应用,就无法撤销。 若要删除并发控制,需要创建新流。 因此,请谨慎操作。
  • 最佳实践:最好将并发控制保留为默认设置。 如果需要应用并发控制,请考虑在操作数量最少的流中应用。 例如,可以将需要并发控制的操作组织到专门的子流中,只在子流中应用并发控制。