我想使用 AWS S3 允许某些用户将文件添加到 S3 存储桶。
然后,我想在添加新文件时生成 SQS 消息。
最后,我想使用 SQS 消息并使用特定类的后台作业辅助角色处理它。
我想使用 SQS 消息属性来确定我应该使用哪个后台作业辅助角色类进行处理。正如 SQS 消息属性文档所述:
消息的使用者可以使用消息属性 [...] 来帮助决定如何处理消息,而不必首先处理消息正文。
(通过 SQS 开发人员指南)
但是,在 S3 存储桶的属性下的高级设置下,事件设置似乎不会公开设置消息属性的方法。
有没有办法为从 S3 生成的事件逐个事件指定消息属性?
没有办法将自定义消息属性注入 S3 事件通知...但也请注意,您可能会误解消息属性的用途。
消息属性 [...] 可以被消息的使用者使用
这意味着它们为使用者提供了一种机制,以便在使用者已从队列中收到消息后对消息进行分类。
您不能根据消息属性有选择地使用消息。 队列使用者在轮询队列时会收到下一条可用消息。 他们无法选择使用哪些消息。
如果要按类划分消息,则需要一个中间进程,有选择地将消息分发到适当的(单独的)下游队列。 更好的是,如果您的结构允许,可能是与需要转到各个队列的特定模式匹配的不同事件配置。
Lambda 将消息添加到队列中,例如使用 BOTO 3 API 使用 python。将此 Lambda 映射到 S3 事件。http://docs.aws.amazon.com/lambda/latest/dg/with-s3.html