直接在EC2实例上订阅S3存储桶通知SNS主题

时间:2017-04-11 07:27:20

标签: amazon-s3 amazon-ec2 amazon-sqs amazon-sns aws-cli

我想直接在EC2实例上订阅S3存储桶通知SNS主题,其中我运行的脚本正在侦听S3存储桶更新事件。

我认为我需要这样做:

aws sns subscribe --topic-arn [ARN of S3 bucket update topic] --protocol [email, email-json, http, https, or sqs]

在这种情况下,哪种协议有意义?

1 个答案:

答案 0 :(得分:2)

要回答您的问题,您需要在ec2实例上设置一个端点,该端点可以接收和处理来自SNS的消息,因此协议将是httphttps(具体取决于您如何设置你的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队列中选择消息