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