AWS SNS - 如何按主题名称获取主题 arn
2022-09-03 14:14:36
在我的应用程序中,我需要将消息发送到给定的主题名称。该主题已经由其他人创建,并且在配置文件中,他们只给出主题名称。我的工作是推送给定主题名称中的消息。有没有办法在java中按主题名称获取主题ARN?
在我的应用程序中,我需要将消息发送到给定的主题名称。该主题已经由其他人创建,并且在配置文件中,他们只给出主题名称。我的工作是推送给定主题名称中的消息。有没有办法在java中按主题名称获取主题ARN?
我通过两种方式之一完成了这项工作。ARN 始终是相同的模式。因此,您可以订阅“arn:aws:sns:<region>:<account>:<name>”,其中:
region 来自 Regions.getCurrentRegion()。请注意这一点,因为它的调用有点昂贵,您需要处理不在EC2 / Elastic Beanstalk实例上。
帐户来自 AmazonIdentityManagementClient.getUser().getUser().getArn()。您必须从中解析帐号。关于不在 EC2 环境中的相同警告。
名字就是你所拥有的。
更简单的方法是遍历主题并在 ARN 中查找所需的名称。您将使用 AmazonSNSClient listTopics 方法来执行此操作。请记住,该方法仅返回前 100 个主题 - 您需要正确循环遍历整个主题列表。