Python AWS CDK中如何获取CfnTopic的Topic ARN属性
Python AWS CDK中通过CfnTopic获取SNS Topic ARN的方法
Cfn开头的低级(L1)构造是CloudFormation资源的直接映射,属性命名规则和高阶(L2)构造不同,你无法直接用topic_arn获取ARN,需要使用L1构造专属的属性名:
- 针对
CfnTopic实例,直接调用attr_topic_arn属性即可获取ARN值,该属性和L2构造的topic_arn一样,都是支持部署时解析的令牌(Token),可直接传入其他资源的属性中使用。
修正后的示例代码如下:
from aws_cdk.aws_sns import CfnTopic, Topic from constructs import Construct class TopicConstruct(Construct): def __init__(self, scope: Construct, id: str): topic = CfnTopic(self, id="Topic") # 正确获取CfnTopic的ARN topic_arn = topic.attr_topic_arn topic_construct = Topic(self, id="OtherTopic") topic_construct_arn = topic_construct.topic_arn
补充规则:所有AWS CDK的L1 Cfn*构造的资源返回属性,都遵循attr_+CloudFormation返回字段蛇形命名的规则,比如CfnBucket的BucketName返回值对应attr_bucket_name,可以对照CloudFormation对应资源的返回值文档查询。
内容的提问来源于stack exchange,提问作者CaptainDriftwood
相关产品推荐
相关产品推荐

