使用 Step Functions 呼叫 EventBridge - Amazon Step Functions
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 Step Functions 呼叫 EventBridge

Step Functions 可以控制某些Amazon直接从亚马逊状态语言提供的服务。有关使用的更多信息Amazon Step Functions以及它的集成,请参阅以下内容:

优化的 EventBridge 集成与 EventBridge 有何不同AmazonSDK 集成
  • 执行 ARN 和状态机 ARN 会自动附加到Resources每个字段PutEventsRequestEntry.

  • 如果响应自PutEvents包含非零FailedEntryCount然后Task状态将失败并显示错误EventBridge.FailedEntry.

有关在将 Step Functions 与其他一起使用时如何配置 IAM 的信息。Amazon服务,请参阅针对集成服务的 IAM 策略.

Step Functions 提供了用于与 Amazon EventBridge 集成的服务集成 API。这使您可以通过直接从 Step Functions 工作流发送自定义事件来构建事件驱动型

使用PutEventsAPI,您需要在账户中创建一个与您将发送的事件的特定模式相匹配的 EventBridge 规则。例如,您可以:

  • 在您的账户中创建一个 Lambda 函数,该函数接收和打印与 EventBridge 规则匹配的事件。

  • 在默认事件总线上在您的账户中创建一个与特定事件模式匹配并以 Lambda 函数为目标的 EventBridge 规则。

有关更多信息,请参阅:

注意

步骤 Functions 中任务的最大输入或结果数据大小有配额。当您向另一个服务发送或接收其他服务的数据时,这限制了您作为 UTF-8 编码字符串的 262,144 字节的数据。请参阅与状态机执行相关的配额

支持的 EventBridge API

支持的 EventBridge API 和语法包括:

下面这个内容Task那会发送一个自定义事件:

{ "Type": "Task", "Resource": "arn:aws:states:::events:putEvents", "Parameters": { "Entries": [ { "Detail": { "Message": "MyMessage" }, "DetailType": "MyDetailType", "EventBusName": "MyEventBus", "Source": "my.source" } ] }, "End": true }

错误处理

这些区域有:PutEventsAPI 接受一组条目作为输入,然后返回一组结果条目。只要PutEvents操作成功,PutEvents即使一个或多个条目失败,也会返回 HTTP 200 响应。PutEvents返回中的失败条目数FailedEntryCount字段中返回的子位置类型。

Step Functions 检查是否FailedEntryCount大于零。如果它大于零,则 Step Functions 将使状态失败并显示错误。EventBridge.FailedEntry. 这使您可以在任务状态上使用 Step Functions 的内置错误处理功能来捕获或在出现失败条目时重试,而无需使用额外的状态来分析FailedEntryCount从响应中。

注意

如果你实现了幂等性并且可以安全地重试所有条目,你可以使用 Step Functions 的重试逻辑。Step Functions 不会从PutEvents在重试之前输入数组。相反,它会使用原始条目数组进行重试。