web-dev-qa-db-ja.com

AWSSNS-トピック名でトピックarnを取得する方法

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

11
Gowsikan

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

10
Bryn

私はこれを2つの方法のうちの1つで行いました。 ARNは常に同じパターンです。したがって、「arn:aws:sns :::」をサブスクライブすることができます。ここで:

regionはRegions.getCurrentRegion()からのものです。これは呼び出しに少し費用がかかり、EC2/ElasticBeanstalkインスタンスにないことを処理する必要があるため注意してください。

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

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

より簡単な方法は、トピックをループして、ARNで必要な名前を探すことです。これを行うには、AmazonSNSClientlistTopicsメソッドを使用します。このメソッドは最初の100トピックのみを返すことに注意してください。トピックリスト全体を適切にループする必要があります。

6
stdunbar