我想直接在EC2实例上订阅S3存储桶通知SNS主题,其中我运行的脚本正在侦听S3存储桶更新事件。
我认为我需要这样做:
aws sns subscribe --topic-arn [ARN of S3 bucket update topic] --protocol [email, email-json, http, https, or sqs]
在这种情况下,哪种协议有意义?
答案 0 :(得分:2)
要回答您的问题,您需要在ec2实例上设置一个端点,该端点可以接收和处理来自SNS的消息,因此协议将是http
或https
(具体取决于您如何设置你的ec2实例上的服务器)。您可以在Sending Amazon SNS Messages to HTTP/HTTPS Endpoints
请注意你是如何编写脚本的,但如果使用python / java / javascript或lambda支持的任何东西,那么在lambda函数中部署代码并将消息发送到这个lambda会更好只有在执行时付费(在另一种情况下,您的ec2实例需要始终启动并运行以收听消息)。 lambda
是受支持的sns订阅协议
第三个选项是在图片中引入SQS,您将以异步模式运行(如果是一个选项,则取决于您的要求)
您可以选择sqs
作为SNS消息的协议值(有关详细信息,请阅读Sending Amazon SNS Messages to Amazon SQS Queues),您需要使用ec2 webservice在sqs队列中选择消息