boto3以名称

时间:2018-10-09 17:29:15

标签: boto3 amazon-sns

如何通过使用名称而不是arn来发布主题。而且我没有在文档中看到有关如何操作的任何指南。目前,访问主题的唯一方法是thorugh arn。

我使用诸如无服务器之类的部署脚本来创建我所有的lambda和主题,并具有友好的名称。

我按名称访问主题的唯一方法是

import boto3
sns = boto3.client('sns')
topics = sns.list_topics()
topic_arn = // search for topic with name in arns stored in topics
topic_arn.publish()

这种方法似乎效率低下,最好直接通过名称访问主题,或者对此有解决方案?

1 个答案:

答案 0 :(得分:2)

您无需搜索主题即可找到ARN,只需自行创建ARN(Python 3):

aws_region = 'us-west-1' # or whatever you like
aws_account_id = '123456789012' # replace with your real account ID via some secure mechanism
topic_name = 'FriendlySNSTopicName' # replace as needed
topic_arn = f"arn:aws:sns:{aws_region}:{aws_account_id}:{topic_name}"

还请注意,您提供的代码无效。您正在创建一个低级客户端,但是使用资源样式进行publish()调用。