选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

使用 Step Functions 添加 EventBridge 事件

聚焦模式
使用 Step Functions 添加 EventBridge 事件 - AWS Step Functions

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

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

Step Functions 提供了一个用于与亚马逊集成的服务集成 API EventBridge。了解如何通过直接从 Step Functions 工作流程发送自定义事件,来构建事件驱动型应用程序。

要了解如何在 Step Functions 中与 AWS 服务集成,请参阅集成 服务在 Step Functions 中将参数传递给服务 API

优化 EventBridge 集成的关键特性
  • 执行 ARN 和状态机 ARN 会自动附加到每个 PutEventsRequestEntryResources 字段。

  • 如果来自 PutEvents 的响应包含非零的 FailedEntryCount,则 Task 状态会失败,并出现错误 EventBridge.FailedEntry

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

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

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

有关更多信息,请参阅:

以下内容包含一个发送自定义事件的 Task

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

在 Step Functions 中,任务的最大输入或结果数据大小有一个配额。这样,当您向其他服务发送数据或从其他服务接收数据时,您只能使用 256 KiB 的数据作为 UTF-8 编码的字符串。请参阅 与状态机执行相关的配额

优化 EventBridge 的 API

支持 EventBridge 的 API 和语法包括:

错误处理

PutEvents API 接受一个条目数组作为输入,然后返回一个结果条目数组。只要 PutEvents 操作成功,即使有一个或多个条目失败,PutEvents 也会返回 HTTP 200 响应。PutEvents 会在 FailedEntryCount 字段中返回失败条目的数量。

Step Functions 会检查 FailedEntryCount 是否大于零。如果大于零,Step Functions 将以 EventBridge.FailedEntry 错误结束状态。这样,当出现失败条目时,就可以使用 Step Functions 在任务状态上的内置错误处理功能来捕捉或重试,而不需要使用额外的状态来分析响应中的 FailedEntryCount

注意

如果已实现幂等性并能安全地重试所有条目,则可以使用 Step Functions 的重试逻辑。Step Functions 不会在重试前删除 PutEvents 输入数组中的成功条目。相反,它会使用原始的条目数组进行重试。

用于呼叫的 IAM 政策 EventBridge

以下示例模板展示了如何根据状态机定义中的资源 AWS Step Functions 生成 IAM 策略。有关更多信息,请参阅Step Functions 如何为集成服务生成 IAM 策略探索 Step Functions 中的服务集成模式

PutEvents

静态资源

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "events:PutEvents" ], "Resource": [ "arn:aws:events:us-east-1:123456789012:event-bus/stepfunctions-sampleproject-eventbus" ], "Effect": "Allow" } ] }

动态资源

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "events:PutEvents" ], "Resource": "arn:aws:events:*:*:event-bus/*" } ] }
隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。