问题描述
根据无服务器框架插件的文档,See examples here,我们能够启用EC2事件规则来调用我们的状态机。
(通过上面的链接)
stepFunctions:
stateMachines:
first:
events:
- cloudwatchEvent:
event:
source:
- "aws.ec2"
detail-type:
- "EC2 Instance State-change Notification"
detail:
state:
- pending
deFinition:
...
我希望从S3事件规则中调用我的状态机。
但是,根据AWS CloudWatch Even Types documentation,由于它未出现在AWS CloudWatch Even Types文档链接中,因此我们似乎无法使用S3事件规则
那么这是否意味着我不能使用此插件基于S3事件规则来调用我的状态机,例如将新对象上传到S3?
解决方法
这取决于您尝试触发的S3事件的类型。
您提供的链接显示您can use CloudTrail events to trigger CloudWatch event rules。这样一来,您就可以触发创建/删除存储桶之类的事件。
如果要触发诸如从存储桶中添加/删除对象之类的事情,那么如果不编写一些其他资源,将无法做到这一点。您可以create S3 events来触发SQS,SNS或a Lambda function。我的建议是实现一个接受S3事件并根据需要启动状态机的lambda函数。然后创建一个S3事件,以在发生所需的对象事件时触发您的lambda。