python - Boto - AWS SNS 如何提取主题的 ARN 编号

标签 python amazon-web-services boto amazon-sns

创建 AWS SNS 主题时:

a = conn.create_topic(topicname)

或者获取已经创建的主题:

a = conn.get_all_topics()

结果是:

{u'CreateTopicResponse': {u'ResponseMetadata': {u'RequestId': u'42b46710-degf-52e6-7d86-2ahc8e1c738c'}, u'CreateTopicResult': {u'TopicArn': u'arn:aws:sns:eu-west-1:467741034465:exampletopic'}}}

问题是如何将主题的 ARN 获取为字符串:arn:aws:sns:eu-west-1:467741034465:exampletopic

最佳答案

import boto

def get_account_id():
    # suggested by https://groups.google.com/forum/#!topic/boto-users/QhASXlNBm40
    return boto.connect_iam().get_user().arn.split(':')[4]

def topic_arn_from_name(self, region, name):
    return ":".join(["arn", "aws", "sns", region, get_account_id(), name])

关于python - Boto - AWS SNS 如何提取主题的 ARN 编号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26656286/

相关文章:

python - 向我的船指向的方向发射子弹

python - 使 numpy 随机抽取保持一致以实现可重复性

ubuntu - 在 EC2 实例中安装 psycopg2 的问题

django - Amazon S3 的访问被拒绝错误

python - 打印出文件中以字母表中的每个字母开头的单词的第一次出现

python unittest因源代码中的相对导入而失败

amazon-web-services - CodeBuild 中的工件无法使用 CodeDeploy 进行部署

ios - AWS Amplify 数据库选项

python - 使用 Boto 判断文件何时已成功上传到 Glacier

python - 如何使用 boto 从作业中提取 FreeText 答案