2017-03-03 79 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。