Home > Software design >  CfnTopic Python AWS CDK access Topic ARN?
CfnTopic Python AWS CDK access Topic ARN?

Time:11-17

Given a CfnTopic using the AWS CDK for Python, how does one access the Topic ARN attribute? I'm able to access this property using the higher level Topic construct, but not the lower level CfnTopic construct.

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")  # <- Can't access topic.topic_arn
        topic_construct = Topic(self, id="OtherTopic")
        topic_construct_arn = topic_construct.topic_arn  # <- Can access topic_arn property

CodePudding user response:

Use the ref property. From the CloudFormation docs:

When you pass the logical ID of this resource to the intrinsic Ref function, Ref returns the topic ARN, for example: arn:aws:sns:us-east-1:123456789012:mystack-mytopic-NZJ5JSMVGFIE.

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-topic.html

topic_arn = topic.ref

FYI - this applies to most (if not all) L1 constructs.

  • Related