2017-03-03 80 views
2

我想使用Amazon SNS service。我希望能够订阅http休息到SNS主题以接收通知。如何在本地测试AWS SNS?

但是在本地我的应用程序的URL为localhost所以我不可能在本地测试应用程序行为。

我发现一篇关于使用ngrok服务器的文章,使用一些公有IP而不是本地。

但是,它似乎不是一个很好的解决方案。

你有什么想法我怎么能在本地工作SNS订户?

回答

0

看看在GitHub上假SNS的实现方式之一,如s12v/sns

Fake Amazon Simple Notification Service (SNS) for testing. Supports:

  • Create/List/Delete topics
  • Subscribe endpoint
  • Publish message
  • Subscription persistence
  • Integrations with (Fake-)SQS, File, HTTP, RabbitMQ, Slack
+0

它似乎不适用于最新的sdk。 AwsClientBuilder.EndpointConfiguration endpointConfiguration = new AwsClientBuilder.EndpointConfiguration(“localhost:9911”,“us-east-1”); AmazonSNS amazonSNSClient = AmazonSNSClientBuilder.standard() .withEndpointConfiguration(endpointConfiguration) .build(); System.out.println(amazonSNSClient.listTopics()); 如果我运行一个简单的代码 - 我得到一个错误: 异常在线程“主”SdkClientException:无法执行HTTP请求:无法识别的SSL消息,明文连接? – Kiryl

2

你也可以使用ngrok公开暴露你的本地主机。

它们的工作方式是动态创建子域,并将所有请求通过隧道传送到您的机器上所需的端口。

想象这个场景,我有一个在localhost上运行的nginx:8080。 我打开我的终端并运行ngrok 8080,它会占用我的终端会话并记录我的公共网址,例如'as78fh.ngrok.com'。

如果我在另一台计算机上,打开浏览器并导航到as78fh.ngrok.com/register请求从我的localhost:8080 /注册通过隧道回到互联网。

我用它来处理很多棘手的事情,比如电子邮件webhooks,github集成,当然还有亚马逊SNS。