2016-04-19 40 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。

相关问题