我刚刚开始使用SNS,据我所知,你不能简单地订阅发行商并收听活动。你必须我)。创建一个公共访问回调(网址/电子邮件/短信),ii)。向服务注册它,并iii)。构建特定于回调类型的消费者。是否可以在不使用公共回叫的情况下收听AWS SNS通知?
我想用类似这样的API:
const client = new SnsClient({
region: 'eu-west-1',
topicArn: 'XXX'
})
client.on('connection', (connection) => {
connection.on('notification', (notification) => {
// do some work with notification
})
})
我缺少的东西?我想让X个Web服务器监听单个事件(扇出)。
例如我的工作人员可能是一个私人子网上的EC2实例,所以可用的订阅:“http(s)”,“email”,“短信”将无法工作**。 “SQS”可以工作,但你必须为每个实例设置一个队列,它使用长轮询而不是推送。 “应用程序”和“lambda”不适用。
AWS SNS是否适合此用例?如果没有,是否有另外的AWS服务?
**您可能可以使用https工作,但只能使用过于复杂的角色/ dns。
编辑: 我想我想要做的是类似于Google Cloud PubSub Subscription或RabbitMQ但使用本机(AWS),而不是第三方服务。
你在问[fanout场景](http://docs.aws.amazon.com/sns/latest/dg/SNS_Scenarios.html#SNSFanoutScenario)吗? –
@AlexBlex类但我更感兴趣的**连接**。我不想为我的实例创建回调和订阅者。我想简单地有一个“套接字”连接。我的直觉是,我需要一种不同的产品,但不能识别出合适的AWS产品。为每个实例连接一个单独的队列似乎没有必要。 – Simon
那么,你可能需要详细说明什么是“socket like”连接。 pubsub和rabbit都需要所有消费者订阅。订阅是相当“套接字”寿。 –