是否可以将SQS消息属性添加到S3事件生成的SQS消息中?

时间:2017-10-10 19:51:08

标签: amazon-web-services amazon-s3 amazon-sqs

我想使用AWS S3允许某些用户将文件添加到S3存储桶。

然后,我想在添加新文件时生成SQS消息。

最后,我想使用SQS消息并使用特定类的后台作业工作程序处理它。

我想使用SQS消息属性来确定我应该使用哪个后台作业工作者类进行处理。正如SQS消息属性文档所述:

  

消息的使用者可以使用消息属性来帮助确定如何处理消息,而无需首先处理消息正文。

(通过SQS Developer Guide

但是,在S3存储桶的属性下,在高级设置下,事件设置似乎没有公开设置消息属性的方法。

有没有办法在逐个事件的基础上为S3生成的事件指定消息属性?

2 个答案:

答案 0 :(得分:0)

您应该使用Lambda将消息添加到队列中,例如使用BOTO 3 API的python。将此Lambda映射到S3事件。 http://docs.aws.amazon.com/lambda/latest/dg/with-s3.html

答案 1 :(得分:0)

没有办法将自定义消息属性注入S3事件通知......但是请注意,您可能会错误地解释可以使用哪些消息属性。

  

消息的消费者可以使用消息属性[...]

这意味着它们为消费者提供了一种机制,可以在消费者已经从队列中收到消息之后消息

您无法根据消息属性有选择地使用消息。队列消费者在轮询队列时会收到下一个可用消息。他们无法选择他们消费的消息。

如果要按类别划分消息,则需要一个中间过程,有选择地将消息分发到适当的(单独的)下游队列。更好的是,如果您的结构允许,可能是不同的事件配置匹配需要转到各个队列的特定模式。