How to avoid circular dependency between transit gateway and route table?

0

In Cloudformation template I have an option to define AssociationDefaultRouteTableId and PropagationDefaultRouteTableId for TransitGateway.

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgateway.html

Type: AWS::EC2::TransitGateway
Properties: 
  ...
  AssociationDefaultRouteTableId: String
  ...
  PropagationDefaultRouteTableId: String

But TransitGatewayRouteTable has mandatory parameter TransitGatewayId and this causes a circular dependency between route table and transit gateway :-(

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayroutetable.html

Type: AWS::EC2::TransitGatewayRouteTable
Properties: 
  ...
  TransitGatewayId: String

Is there a way to get around this somehow and actually set AssociationDefaultRouteTableId and PropagationDefaultRouteTableId for transit gateway from Cloudformation template ?

profile picture
专家
Kallu
已提问 2 年前710 查看次数
1 回答
1
已接受的回答

I don't think you'll be able to do this how you are trying as the circular dependency will always be there.

One way that you may be able to achieve the same outcome is by using a custom lambda resource to modify the TGW defaults after it's created. Here is an example from github: https://github.com/alexandrespbr/vpcsharednfw/blob/3aad9e78c08610b2e3602364158f78867338db39/egressVpc.yaml#L475

AWS
已回答 2 年前
profile picture
专家
Kallu
已审核 6 个月前
  • Thanks! This is my thinking as well. The only thing it doesn't explain why such parameters were made available for TransitGateway resource type you can not possibly use. Looks like a bug and missing feature (that ability to set route table id's).

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则