本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
开始执行状态机以响应 Amazon S3 事件
您可以执行Amazon Step Functions状态机以响应 Amazon EventBridge 或按计划执行。
本教程向您展示如何将状态机配置为 Amazon EventBridge 规则的目标。此规则将在文件添加到 Amazon Simple Storage Service (Amazon S3) 存储桶时开始执行状态机。
对于实际应用程序,您可以启动状态机来对添加到存储桶的文件执行操作,例如创建缩略图或对图像和视频文件运行 Amazon Rekognition 分析。
在本教程中,您可以通过将文件上传到 Amazon S3 存储桶。Helloworld
然后,您查看该执行的示例输入,以确定传送到的 Amazon S3 事件通知的输入中包含的信息 EventBridge。
主题
先决条件:创建状态机
在将状态机配置为 Amazon EventBridge 目标之前,必须先创建状态机。
-
要创建基本状态机,请使用使用 Lambda 函数的创建状态机教程。
-
如果您已有
Helloworld
状态机,请继续到下一个步骤。
步骤 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
现在您有一台Helloworld
状态机,您需要创建一个 Amazon S3 存储桶来存储您的文件。在本教程的第 3 步中,您设置了一条规则,以便在将文件上传到此存储段时, EventBridge 触发状态机的执行。
-
导航到 Amazon S3 控制台
,然后选择 Create b u cket 以创建您想要在其中存储文件并触发 Amazon S3 事件规则的存储桶。 -
输入存储桶名称,如
。username
-sfn-tutorial注意 存储桶名称在 Amazon S3 内所有Amazon区域的所有现有存储桶名称中必须唯一。使用您自己的
用户名
以使此名称唯一。您必须在相同的 Amazon 区域中创建所有资源。 -
保留页面上的所有默认选择,然后选择 C reate bucket。
第 2 步:使用以下命令启用 Amazon S3 事件通知 EventBridge
创建 Amazon S3 存储桶后,请将其配置为在 S3 存储桶中发生某些事件 EventBridge 时向 1 存储桶发送事件。
-
导航到 Amazon S3 控制台
。 -
在 Buckets (存储桶) 列表中,请选择要为其启用事件的存储桶的名称。
-
选择 Properties (属性)。
-
向下滚动页面查看 “事件通知” 部分,然后在 “亚马逊” EventBridge 子部分中选择 “编辑”。
-
在 S end notifice ( EventBridge 为此存储桶中的所有事件向 Amazon) 下方,请选择 O n(
-
选择 Save changes(保存更改)。
注意 启用后 EventBridge,所做的更改需要大约五分钟才能生效。
第 3 步 3 步 3 步 3 步 1 步 1 步 EventBridge 1 1
在您拥有状态机并创建 Amazon S3 存储桶并将其配置为向发送事件通知后 EventBridge,创建 EventBridge 规则。
您必须在与 Sim EventBridge ple Storage (Amazon S3) 存储桶位于同一Amazon区域。
创建 规则
-
导航到亚马逊 EventBridge 控制台
,选择创建规则。 -
输入规则的名称(例如
S3StepFunctions
),也可以输入规则的描述。 -
保留页面上的所有默认选择,然后选择 “下一步”。
-
在 “生成事件模式” 页面上,向下滚动到 “事件模式” 部分,然后执行以下操作:
-
对于事件源,保留默认选择。
-
对于Amazon服务 1,请选择 SiSim ple Storage Service (S3)。
-
对于事件类型,选择 Amazon S3 事件通知。
-
选择 “特定操作”,然后选择 “对象已创建”。
-
按名称选择特定存储桶,然后输入您在步骤 1 (
) 中创建的存储桶名称以存储您的文件。username
-sfn-tutorial -
选择 Next(下一步)。
-
创建目标
-
在目标 1 中,确保选择了Amazon服务。
-
在 “选择目标” 下拉列表中,选择 Step Functions 状态机。
-
在状态机列表中,选择您在步骤 1(
Helloworld
)中创建的状态机。 -
保留页面上的所有默认选择,然后选择 “下一步”。
-
再次选择 “下一步”,然后在 “查看和创建” 页面上查看规则的详细信息。
-
请选择 Create rule (创建规则)。
规则已创建并显示 “规则” 页面,其中列出了您的所有亚马逊 EventBridge 规则。
步骤 4:测试 规则
现在一切都准备就绪,测试向 Amazon S3 存储桶添加文件,然后查看生成的状态机执行的输入。
-
将文件添加到 Amazon S3 存储桶。
导航到 Amazon S3 控制台
,选择您创建的用于存储文件的存储桶 (
),然后选择上传。username
-sfn-tutorial -
例如
,添加文件,然后选择 Upload(上传)。test.png
这将启动一个状态机执行,并以输入的形式传递来自 Amazon CloudTrail 的信息。
-
检查您的状态机的执行情况。
导航到 Step Functions 控制台并选择您的亚马逊 EventBridge 规则中使用的状态机(
Helloworld
)。 -
选择该状态机的最新执行次数,然后展开 “执行输入” 部分。
此输入包含诸如存储桶名称和对象名称之类的信息。在真实使用案例中,状态机可以使用此输入对该对象执行操作。
执行输入的示例
以下示例示例1:状态机执行时的典型输入。
{ "version": "0", "id": "6c540ad4-0671-9974-6511-756fbd7771c3", "detail-type": "Object Created", "source": "aws.s3", "account": "123456789012", "time": "2022-02-19T01:36:58Z", "region": "us-east-2", "resources": [ "arn:aws:s3:::
" ], "detail": { "version": "0", "bucket": { "name": "
username
-sfn-tutorial" }, "object": { "key": "test.png", "size": 800704, "etag": "f31d8546bb67845b4d3048cde533b937", "sequencer": "00621049BA9A8C712B" }, "request-id": "79104EXAMPLEB723", "requester": "123456789012", "source-ip-address": "200.0.100.11", "reason": "PutObject" } }
username
-sfn-tutorial