0

是否可以通过 cdk 将路由条目添加到路由表?

我尝试的方法是:使用 vpc 构造我尝试遍历 public_subnets + private_subnets 属性列表以获取 routeTables。但是这些返回 IRouteTable - 我似乎无法对其进行任何更新。有人知道该怎么做吗?谢谢。

4

2 回答 2

2

您可以通过实例化新的 CloudFormation Route 资源来解决此问题:

vpc.privateSubnets.forEach(({ routeTable: { routeTableId } }, index) => {
  new CfnRoute(stack, 'PrivateSubnetPeeringConnectionRoute' + index, {
    destinationCidrBlock: '10.0.0.0/16',
    routeTableId,
    vpcPeeringConnectionId: peeringConnection.ref,
  })
})

您将需要知道这些路由的对等连接的 ID。在上面的示例中,它在同一个堆栈中创建时被引用:

const peeringConnection = new CfnVPCPeeringConnection(
  stack,
  'PeeringConnection',
  {
    peerVpcId: peerVpc.vpcId,
    vpcId: vpc.vpcId,
  }
)

考虑 [1] 、 [2] 和 [3] 以获得更多详细信息

[1] https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.Vpc.html#static-from-wbr-vpc-wbr-attributesscope-id-attrs

[2] https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.Subnet.html#add-wbr-routeid-options

[3] https://qiita.com/is_ryo/items/66dfe6c4b6dda4bd1eeb

于 2021-05-11T07:11:04.640 回答
0

原来它使用的是您在 cdk 中添加路由的 Subnet 构造(使用 add_route 方法)。 https://docs.aws.amazon.com/cdk/api/latest/python/aws_cdk.aws_ec2/Subnet.html

于 2021-05-11T08:03:09.683 回答