是否可以在打字稿中使用CDK将条目添加到导入的专用子网的路由表中?我正在使用以下方式导入VPC:
import ec2 = require('@aws-cdk/aws-ec2');
vpc = ec2.Vpc.fromVpcAttributes(...)
(fromVpcAttributes
上的文档:https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.Vpc.html#static-from-wbr-vpc-wbr-attributesscope-id-attrs),因此将其私有子网作为ISubnet
数组导入。我想在每个专用子网的路由表中设置VPC对等目标/目的地,最常见的方法似乎是通过Subnet
的{{1}}方法({{3 }}。这是在新建子网时起作用的,例如:https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.Subnet.html#add-wbr-routeid-options,但是我的私有子网没有此方法,因为它们是作为addRoute
导入的。有没有办法将这些子网导入为子网?还是在这种情况下添加条目的更好方法?
答案 0 :(得分:3)
实际上,我今天陷入了类似的情况,我可以通过实例化新的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,
}
)
希望这会有所帮助!