2016-04-19 43 views
2

在我的應用程序中,我需要發送消息給定的主題名稱。該主題已經由其他人創建,並且在配置文件中他們只給出主題名稱。我的工作是推送給定主題名稱中的消息。有什麼辦法在java中按主題NAME獲取主題ARN?AWS SNS - 如何通過主題名稱獲取主題arn

回答

2

我已經完成了這兩種方法之一。 ARN總是相同的模式。因此,您可以訂閱「arn:aws:sns :::」,其中:

區域來自Regions.getCurrentRegion()。請注意這一點,因爲它的調用有點貴,您需要處理不在EC2/Elastic Beanstalk實例上。

帳戶來自AmazonIdentityManagementClient.getUser()。getUser()。getArn()。你必須從中解析帳號。關於不在EC2環境中的警告。

你的名字就是你的。

一個更簡單的方法是遍歷主題並在ARN中查找您想要的名稱。您將使用AmazonSNSClient listTopics方法執行此操作。請記住,該方法僅返回前100個主題 - 您需要正確循環整個主題列表。

0

您可以做的是創建一個包含主題及其主題的表格。

主題arn可以通過控制檯或創建主題時使用api進行檢索。

這種方式不需要循環或嘗試匹配模式。

3

正如answer所述,使用createTopic(topicName)是更直接的辦法。如果之前已經創建了話題,它只會返回主題ARN。

相關問題