我有一个工作流程,它接收S3存储桶中的文件,并根据文件内容进行大量处理和进一步请求。目前,客户端必须在上传文件后手动触发工作流程。这对我来说似乎是一个非常常见的用例,所以有没有办法在文件上传后立即触发工作流程?
我想两者之间应该有一个SNS通知,但是有没有办法直接将通知发送到SWF,而没有服务消耗它们并启动工作流程?
答案 0 :(得分:7)
AWS今天终于推出了New Event Notifications for Amazon S3,它确实只需通过 S3 API(如PUT,POST)扩展长期可用的PUT Bucket notification API以及额外的event types来创建对象。和COPY :
s3:ObjectCreated:*
s3:ObjectCreated:Put
s3:ObjectCreated:Post
s3:ObjectCreated:Copy
s3:ObjectCreated:CompleteMultipartUpload
[...]有没有办法直接将通知发送到SWF,而没有服务消耗它们并启动工作流程?
不幸的是没有这样的方式,你确实需要一个中介服务 - 虽然PUT Bucket notification显然也被设计为允许其他类型的事件,Amazon S3不支持Amazon SNS截至今天的Enabling RRS Lost Object Notifications以外的任何通知:
PUT操作的这种实现使用
notification
子资源来启用存储桶的指定事件的通知。 目前,s3:ReducedRedundancyLostObject
事件是唯一支持通知的事件。当Amazon S3检测到它已丢失对象的所有副本并且无法再为该对象提供服务请求时,将触发s3:ReducedRedundancyLostObject
事件。 [强调我的]
答案 1 :(得分:1)