轮询 AWS SQS 队列以查找具有特定属性的消息
Polling an AWS SQS queue for messages with certain attributes
我已经使用 AWS SQS 设置了一个标准队列,我想轮询此 queue
以获取包含
具体 attribute
,最好使用 python 中的 boto3
库。我知道 boto3
有一个
方法 recieve_message()
从队列中轮询消息。但是,我只想获取那些包含特定属性的消息。一种天真的方法是遍历 receive_message()
输出并检查 receive_message()
中的 message
是否包含 attribute
,但我想知道是否有其他解决方案来解决这个问题。
SQS ReceiveMessage
API 不支持选择性轮询。另一种方法是让您的 EC2 将包含不同属性的消息发送到不同的 SQS 队列中。
您不能单独使用 SQS 过滤某些消息,但是,您可以使用 SNS 来过滤。
您可以将消息发布到 SNS 主题。 SNS 的消息过滤器功能使订阅 SNS 主题的端点能够仅接收它感兴趣的主题消息的子集。因此您可以确保只有具有特定属性的相关消息才排入消费者队列。
参考Filter Messages Published to Topics and SNS subscription filtering policies。
我已经使用 AWS SQS 设置了一个标准队列,我想轮询此 queue
以获取包含
具体 attribute
,最好使用 python 中的 boto3
库。我知道 boto3
有一个
方法 recieve_message()
从队列中轮询消息。但是,我只想获取那些包含特定属性的消息。一种天真的方法是遍历 receive_message()
输出并检查 receive_message()
中的 message
是否包含 attribute
,但我想知道是否有其他解决方案来解决这个问题。
SQS ReceiveMessage
API 不支持选择性轮询。另一种方法是让您的 EC2 将包含不同属性的消息发送到不同的 SQS 队列中。
您不能单独使用 SQS 过滤某些消息,但是,您可以使用 SNS 来过滤。
您可以将消息发布到 SNS 主题。 SNS 的消息过滤器功能使订阅 SNS 主题的端点能够仅接收它感兴趣的主题消息的子集。因此您可以确保只有具有特定属性的相关消息才排入消费者队列。
参考Filter Messages Published to Topics and SNS subscription filtering policies。