Python 如何获取SNS发布的消息

Python 如何获取SNS发布的消息,python,amazon-web-services,amazon-sqs,amazon-sns,Python,Amazon Web Services,Amazon Sqs,Amazon Sns,我有一个通过Amazon SNS向指定目标发布消息的应用程序。我需要使用python以某种方式获得此消息。最简单的方法是什么?亚马逊SNS不允许直接检索邮件。相反,对于Amazon SNS中的给定主题,您可以配置订阅者。例如,订阅者可以是电子邮件地址、Amazon SQS队列、HTTP端点或其他一些选项。请参阅(搜索“亚马逊SNS是如何工作的”)了解其工作原理 使用SQS队列 要从python脚本接收已发布的消息,最好为脚本设置一个新的AmazonSQS队列,并将队列订阅到SNS主题 然后可以轮

我有一个通过Amazon SNS向指定目标发布消息的应用程序。我需要使用python以某种方式获得此消息。最简单的方法是什么?

亚马逊SNS不允许直接检索邮件。相反,对于Amazon SNS中的给定主题,您可以配置订阅者。例如,订阅者可以是电子邮件地址、Amazon SQS队列、HTTP端点或其他一些选项。请参阅(搜索“亚马逊SNS是如何工作的”)了解其工作原理

使用SQS队列 要从python脚本接收已发布的消息,最好为脚本设置一个新的AmazonSQS队列,并将队列订阅到SNS主题

然后可以轮询SQS队列,查看队列中是否有任何消息

这种技术还有一个额外的优点,就是即使python脚本没有运行,您也不会错过任何消息——它们将在SQS队列中等待您

是一个用于与Amazon交互的优秀python库,并解释了如何访问SQS队列

使用HTTP端点
或者,如果可以将Python脚本部署为web应用程序,并将Http端点作为API,则可以将Http端点订阅到SNS主题,并且每次出现新消息时都会调用端点。不建议使用此技术,因为如果您的脚本处于脱机状态,您将错过消息。

因此,我的应用程序不会将消息发布到某个主题,而是发布到某个目标。但是subscribe方法需要topicArn参数:我应该作为topicArn发送什么,以及如何为这些消息创建sqs订阅?对不起,我误解了这个问题。将根据答案更新,但只是为了确认-关于发布消息的应用程序的几个问题-1)发布到目标而不是主题的原因是什么?2) 你可以更改该应用程序吗?我无法更改该应用程序,因此我需要捕获发布到某个目标网络的消息。该应用程序使用的目标网络是什么?