2016-04-19 22 views
2

私のアプリケーションでは、トピック名にメッセージを送信する必要があります。トピックはすでに他人によって作成されており、設定ファイルにはトピック名のみが与えられています。私の仕事は、トピックトピックの名前でメッセージをプッシュすることです。 JavaのトピックNAMEによってトピックARNを取得する方法はありますか?AWS SNS - トピック名でトピックを取得する方法

答えて

2

私はこの2つの方法のいずれかを行っています。 ARNは常に同じパターンです。したがって、あなたは単に "arn:aws:sns :::"を購読することができます。

地域はRegions.getCurrentRegion()からです。コールには少し高価で、EC2/Elastic Beanstalkのインスタンスにないことを処理する必要があるため、注意してください。

アカウントはAmazonIdentityManagementClient.getUser()。getUser()。getArn()からのものです。それから口座番号を解析する必要があります。 EC2環境にいないという警告もあります。

名前はあなたが持っているものです。

もっと簡単な方法は、トピックをループして、ARNで必要な名前を探します。これを行うには、AmazonSNSClientのlistTopicsメソッドを使用します。このメソッドは最初の100個のトピックのみを返すので、トピックリスト全体を適切にループしたいと思います。

0

あなたができることは、トピックとtopicArnを含むテーブルを作成することです。

トピックarnは、トピックを作成するときにコンソールまたはAPIを使用して取得できます。

この方法では、パターンをループしたり試したりする必要はありません。

3

このように、answerではcreateTopic(topicName)を使用する方がより直接的なアプローチです。前にトピックが作成されている場合、トピックARNだけが返されます。

関連する問題