2

I am using the following settings for creating a transit gateway through CloudFormation.

AutoAcceptSharedAttachments: disable
DefaultRouteTableAssociation: enable
DefaultRouteTablePropagation: enable

I want to know how can one get the "TransitGatewayRouteTableId" in this situation? It is a necessary property for creating a static route in the default transit gateway route table.

Type: AWS::EC2::TransitGatewayRoute
Properties: 
  Blackhole: Boolean
  DestinationCidrBlock: String
  TransitGatewayAttachmentId: String
  TransitGatewayRouteTableId: String

I have already tried the following !GetAtt intrinsic function but it doesn't work since it seems that the only return value for a transit gateway resource is the id https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgateway.html

TransitGatewayRouteTableId: !GetAtt TransitGateway.AssociationDefaultRouteTableId

mtkh
  • 31
  • 4

1 Answers1

3

Thats an annoying limitation of the AWS::EC2::TransitGatewayRoute resource you will have to write a custom resource using a lambda function to retrieve AssociationDefaultRouteTableId, use the transit-gateway id value and pass it into custom resource lambda. If you're going to use python use describe-transit-gateways method https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ec2.html#EC2.Client.describe_transit_gateways

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cfn-customresource.html

b.b3rn4rd
  • 8,494
  • 2
  • 45
  • 57