1

我正在使用以下设置通过 CloudFormation 创建中转网关。

AutoAcceptSharedAttachments: disable
DefaultRouteTableAssociation: enable
DefaultRouteTablePropagation: enable

我想知道在这种情况下如何获得“TransitGatewayRouteTableId”?它是在默认中转网关路由表中创建静态路由的必要属性。

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

我已经尝试过以下!GetAtt内在函数,但它不起作用,因为中转网关资源的唯一返回值似乎是id https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource -ec2-transitgateway.html

TransitGatewayRouteTableId: !GetAtt TransitGateway.AssociationDefaultRouteTableId

4

1 回答 1

2

这是资源的一个令人讨厌的限制,AWS::EC2::TransitGatewayRoute您必须使用 lambda 函数编写自定义资源来检索AssociationDefaultRouteTableId、使用传输网关 id 值并将其传递给自定义资源 lambda。如果您要使用 python 使用 describe-transit-gateways 方法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

于 2022-02-11T03:05:04.520 回答