1

据我了解,SNS 可以将消息推送给订阅者。我有一个将消息推送到 SQS 的简单脚本。但我想做的基本上是:我有一个 SNS 主题,有一个 EC2 实例,有一个 SQS。SQS 订阅了 SNS 主题。

我想做以下事情,当我在 SNS 中创建新消息时,我希望 EC2 收到此通知以检查 SQS。我可以做最后一部分(去检查 SQS)但不明白如何接收消息??????

例如,

酒吧:

context = zmq.Context()
socket = context.socket(zmq.PUB)
socket.bind("tcp://*:%s" % '5556')
socket.send("HI")  

socket.recv()

从上面的例子来看,PUB 应该是我的 SNS,SUB 是我的 EC2,对吧?那么如何监听新的 SNS 消息呢?

4

1 回答 1

1

如果您想要一种简单的方法来设置侦听器,包括在处理完消息时自动删除消息,并将异常自动推送到指定队列,您可以使用pySqsListener包。

你可以像这样设置一个监听器:

from sqs_listener import SqsListener

class MyListener(SqsListener):
    def handle_message(self, body, attributes, messages_attributes):
        run_my_function(body['param1'], body['param2']

listener = MyListener('my-message-queue', 'my-error-queue')
listener.listen()

有一个标志可以从短轮询切换到长轮询 - 它都记录在 README 文件中。

于 2019-09-17T15:03:31.770 回答