AWS SNS 按名称获取主题

2022-08-31 00:30:33

我开始使用 AWS SNS 向我的应用程序发送推送通知。今天,要获取要向其发送推送通知的主题,我需要使用 SNS 客户端函数 listTopics() 加载所有主题,并检查每个主题以查看 ARN 是否具有我正在寻找的主题的名称。

我认为这是获取主题ARN的一种非常低效的方式,我想知道是否有最有效的方法来获取此信息,例如函数getTopicByName或其他东西。

如果没有,我想知道ARN是否不可变,以及是否可以将主题ARN存储在我的数据库中?

谢谢。


答案 1

如果您知道该主题已经存在,或者您不关心它是否被创建,那么更直接的方法就是简单地调用CreateTopic。给定一个名称,将返回现有主题,包括 ARN。CreateTopic


答案 2

我不知道有什么方法可以按名称查找SNS主题。

ARN 是不可变的。它不会在SNS主题的生命周期内改变。特别是,根据文档,SNS 主题的 ARN 采用以下格式:

arn:aws:sns:region:account-id:topicname

因此,更改 SNS 主题的 ARN 的唯一方法是更改名称(在这种情况下,按名称查找也会中断),或者删除该主题并在新区域或完全不同的账户中重新创建它,在这种情况下,它将不再是同一个主题。


推荐