我们正在使用Elastic Beanstalk来提供REST API。现在,我想开发一个端点,以异步方式从SNS主题提供通知。
为了接收这些通知,我需要将API服务器订阅到SNS主题。我怎么能这样做,考虑到EBS应用程序可以扩展到多个服务器并再次缩小的方案?我不想要很多订阅SNS主题的死链接......
答案 0 :(得分:0)
在Spring世界中,我们有一个@PostConstruct,可以在服务器启动时调用,在那里你可以订阅给定主题的“this.server”url(你可能需要构建一个正常工作的订阅URL - 使用InetAddress et el)
因此有使用@RestController的工作订阅URL确认这样的订阅瞬间导致sns端点被注册。任何新服务器都会做同样的事情,也就是自己注册(创建新堆栈时)。我们还需要额外的代码来随后使用通知消息,并在确认的订阅端点收到通知消息时执行某些操作。
答案 1 :(得分:0)
AWS希望您使用SNS的方式不是通过直接订阅它。任何需要在组件中触发某些内容的通知都应该使用SQS队列缓冲通知。出于这个原因,我们选择使用亚马逊管理的Redis发行版,使用可变/可扩展的Subs组来做Pub-Sub。