通过云跟踪使用 s3 put 事件触发 AWS 状态机

Trigger an AWS state machine with an s3 put event via cloud trail

有没有人能够使用 s3 put 事件成功触发 aws 状态机?我已按照说明进行操作 here,但看起来非常 'buggy',通常在放置事件和写入 cloudtrail 日志之间会有很长的延迟。

似乎也没有关于如何配置 'Event rule' 的说明,以便它仅在文件放置在特定子文件夹中时触发?相反,状态机似乎会响应任何文件添加到任何位置的目标存储桶而触发,这使得如果输出进入同一存储桶,则在无限循环中触发同一状态机的风险很大。

如果任何人都可以向官方文档添加任何内容以便更加清晰,那将是一个很大的帮助。非常感谢

CloudTrail 日志有时会很慢,如前所述in the CloudTrail FAQ under "How long does it take CloudTrail to deliver an event for an API call?":

Typically, CloudTrail delivers an event within 15 minutes of the API call.

关于特定子文件夹的事件规则,目前(如果我错了,有人会更新我,可能已经过时)只能通过 S3 Lambda 触发器实现。通过 CloudWatch 事件规则,您唯一可以做的就是按照 this guide 向事件规则添加特定键,它不会充当前缀,而是触发事件的特定键,这可能有帮助。

如果特定键不够用,并且您在 S3 触发器定义中仍然需要 prefix/suffix,则考虑添加一个 Lambda 来执行您的步骤函数,它经常被使用,因为它允许您自定义发送到步骤功能的事件。您可以使用 StartExecution API call from inside your Lambda, and setup an S3 Lambda trigger with a prefix, which you can find information on here.