EventBridge Step Functions 的(CloudWatch 事件)执行状态发生了变化 - Amazon Step Functions
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

EventBridge Step Functions 的(CloudWatch 事件)执行状态发生了变化

Amazon EventBridge 是一项使您能够响应 Amazon 资源状态变化的 Amazon 服务。例如,您可以使用以下两种方式响应 Step Function EventBridge s 标准工作流程的执行状态变化:

  • 您可以配置 EventBridge 规则以对在 Step Functions 状态机的执行状态发生变化时发出的事件做出反应。这使您能够监控您的工作流,而不必持续不断地使用 DescribeExecution API 进行轮询。根据状态机执行的变化,您可以使用 EventBridge 目标来启动新的状态机执行、调用 Amazon Lambda 函数、向亚马逊简单通知服务 (Amazon SNS) Simple Notification Service 主题发布消息等。

  • 您也可以将 Step Functions 状态机配置为中的目标 EventBridge。这使您能够触发 Step Functions 工作流的执行,用于响应另一项 Amazon 服务中的事件。

    有关更多信息,请参阅 Amazon EventBridge 用户指南

但是,Express Workflows 不会向发送事件。 EventBridge要监控 Express 工作流程的执行情况,您可以使用 CloudWatch 日志。为此,在状态机的执行详细信息 页面上,选择监控日志记录选项卡。在 “监控” 选项卡上,您可以查看事件的 CloudWatch 指标,例如执行时长执行错误计费内存。在日志记录选项卡上,您可以查看最近的日志和日志记录配置。

提示

要向你部署 Express 工作流程的示例 Amazon Web Services 账户 并学习如何监控 Express Workflows,请参阅 Amazon Step Functions 研讨会的 “监控 Express 工作流程 模块。

EventBridge 有效载荷

EventBridge 事件的定义中可以包含输入属性。对于某些事件, EventBridge事件还可以在其定义中包含输出属性。

  • 如果发送到的转义输入和转义输出的组合 EventBridge 超过 248KB,则该输入将被排除在外。同样,如果转义输出也超过 248KB,则该输出也将被排除在外。这是 EventBridge活动配额的结果。

  • 您可以使用 inputDetailsoutputDetails 属性确定有效负载是否已被截断。有关更多信息,请参阅 CloudWatchEventsExecutionDataDetails 数据类型

  • 对于标准工作流程,您可以使用查看完整的输入和输出DescribeExecution

  • DescribeExecution 不适用于快速工作流。如果想查看完整的输入/输出,则可以用标准工作流封装快速工作流。另一种方法是使用 Amazon S3 ARN。有关使用 ARN 的信息,请参阅使用 Amazon S3 ARN 而不是传递大量有效负载

Step Functions 事件示例

以下是 Step Functions 向发送事件的示例 EventBridge:

在每种情况下,事件数据中的 detail 部分都提供与 DescribeExecution API 相同的信息。status 字段指明发送事件时执行的状态,根据发送的事件,状态可以是:RUNNINGSUCCEEDEDFAILEDTIMED_OUTABORTED

执行已启动

{ "version": "0", "id": "315c1398-40ff-a850-213b-158f73e60175", "detail-type": "Step Functions Execution Status Change", "source": "aws.states", "account": "123456789012", "time": "2019-02-26T19:42:21Z", "region": "us-east-2", "resources": [ "arn:aws:states:us-east-2:123456789012:execution:state-machine-name:execution-name" ], "detail": { "executionArn": "arn:aws:states:us-east-2:123456789012:execution:state-machine-name:execution-name", "stateMachineArn": "arn:aws::states:us-east-2:123456789012:stateMachine:state-machine", "name": "execution-name", "status": "RUNNING", "startDate": 1551225271984, "stopDate": null, "input": "{}", "inputDetails": { "included": true }, "output": null, "outputDetails": null } }

执行已成功

{ "version": "0", "id": "315c1398-40ff-a850-213b-158f73e60175", "detail-type": "Step Functions Execution Status Change", "source": "aws.states", "account": "123456789012", "time": "2019-02-26T19:42:21Z", "region": "us-east-2", "resources": [ "arn:aws:states:us-east-2:123456789012:execution:state-machine-name:execution-name" ], "detail": { "executionArn": "arn:aws:states:us-east-2:123456789012:execution:state-machine-name:execution-name", "stateMachineArn": "arn:aws:states:us-east-2:123456789012:stateMachine:state-machine", "name": "execution-name", "status": "SUCCEEDED", "startDate": 1547148840101, "stopDate": 1547148840122, "input": "{}", "inputDetails": { "included": true }, "output": "\"Hello World!\"", "outputDetails": { "included": true } } }

执行已失败

{ "version": "0", "id": "315c1398-40ff-a850-213b-158f73e60175", "detail-type": "Step Functions Execution Status Change", "source": "aws.states", "account": "123456789012", "time": "2019-02-26T19:42:21Z", "region": "us-east-2", "resources": [ "arn:aws:states:us-east-2:123456789012:execution:state-machine-name:execution-name" ], "detail": { "executionArn": "arn:aws:states:us-east-2:123456789012:execution:state-machine-name:execution-name", "stateMachineArn": "arn:aws:states:us-east-2:123456789012:stateMachine:state-machine", "name": "execution-name", "status": "FAILED", "startDate": 1551225146847, "stopDate": 1551225151881, "input": "{}", "inputDetails": { "included": true }, "output": null, "outputDetails": null } }

执行超时

{ "version": "0", "id": "315c1398-40ff-a850-213b-158f73e60175", "detail-type": "Step Functions Execution Status Change", "source": "aws.states", "account": "123456789012", "time": "2019-02-26T19:42:21Z", "region": "us-east-2", "resources": [ "arn:aws:states:us-east-2:123456789012:execution:state-machine-name:execution-name" ], "detail": { "executionArn": "arn:aws:states:us-east-2:123456789012:execution:state-machine-name:execution-name", "stateMachineArn": "arn:aws:states:us-east-2:123456789012:stateMachine:state-machine", "name": "execution-name", "status": "TIMED_OUT", "startDate": 1551224926156, "stopDate": 1551224927157, "input": "{}", "inputDetails": { "included": true }, "output": null, "outputDetails": null } }

执行已中止

{ "version": "0", "id": "315c1398-40ff-a850-213b-158f73e60175", "detail-type": "Step Functions Execution Status Change", "source": "aws.states", "account": "123456789012", "time": "2019-02-26T19:42:21Z", "region": "us-east-2", "resources": [ "arn:aws:states:us-east-2:123456789012:execution:state-machine-name:execution-name" ], "detail": { "executionArn": "arn:aws:states:us-east-2:123456789012:execution:state-machine-name:execution-name", "stateMachineArn": "arn:aws:states:us-east-2:123456789012:stateMachine:state-machine", "name": "execution-name", "status": "ABORTED", "startDate": 1551225014968, "stopDate": 1551225017576, "input": "{}", "inputDetails": { "included": true }, "output": null, "outputDetails": null } }

将 Step Functions 事件路由到 EventBridge 控制台 EventBridge 中

使用以下说明,学习如何在特定的 Step Functions 状态机成功运行时触发 Step Functions 状态机的执行。您可以使用 Amazon EventBridge 控制台指定要触发其执行的状态机。

  1. 在状态机的详细信息页面上,选择操作,然后选择创建 EventBridge (CloudWatch 事件)规则

    
            创建 EventBridge 事件规则

    或者,也可以通过 https://console.aws.amazon.com/events/ 打开 EventBridge 控制台。在导航窗格中的总线下,选择规则

  2. 选择创建规则。这将打开定义规则详细信息页面。

  3. 输入规则的名称(例如 StepFunctionsEventRule),然后根据需要输入规则的描述

  4. 对于事件总线规则类型,请保留默认选择。

  5. 选择下一步。这将打开构建事件模式页面。

  6. 在 “事件源” 下,保留Amazon 事件或 EventBridge 合作伙伴事件的默认选择。

  7. 保留示例事件创建方法部分的默认选择。

  8. 对于事件模式,执行以下操作:

    1. 事件来源下拉列表中,保留Amazon 服务的默认选择。

    2. Amazon 服务下拉列表中选择 Step Functions

    3. 事件类型下拉列表中,选择 Step Functions 执行状态更改

    4. (可选)配置特定的状态、状态机 Amazon 资源名称 (ARN) 或执行 ARN。在此过程中,选择特定状态,然后从下拉列表中选择成功

  9. 选择下一步。这将打开选择目标页面。

  10. 目标类型下,保留默认的 Amazon 服务选择。

  11. 从 “选择目标” 下拉列表中,选择一项 Amazon 服务。例如,您可以启动 Lambda 函数或运行 Step Functions 状态机。对于此过程,请选择 Step Functions 状态机

  12. 状态机下拉列表中,选择一个状态机。

  13. 执行角色下,保留为此特定资源创建新角色的默认选择。

  14. 选择下一步。这将打开配置标签页面。

  15. 再次选择下一步。这将打开查看并创建页面。

  16. 查看规则详细信息并选择创建规则

    规则已创建并显示 “规则” 页面,其中列出了您的所有 Amazon EventBridge 规则。