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).

您尚未登入。 登入 去張貼答案。

一個好的回答可以清楚地回答問題並提供建設性的意見回饋,同時有助於提問者的專業成長。

回答問題指南