我正在尝试生成正确的CDK脚本(TypeScript)来创建一个带有Lambda (通过API Gateway访问)的环境,该环境可以调用RDS (Sql Server实例)。
我相信我大部分时间都在工作,但我想从我的开发机器连接到RDS实例,以运行一些查询并检查一些事情。
我的RDS实例在一个私有子网中,我需要添加一个公网网关和安全组来访问相应的端口,然后对它进行so I believe in order to connect to。
在我的生命中,我可以弄清楚最后一块,如何使用CDK添加互联网网关。
我尝试过的最新脚本如下:
const privateSubnectConfiguration = {
cidrMask: 26,
name: 'private-subnet',
subnetType: SubnetType.PRIVATE,
};
const publicSubnectConfiguration = {
cidrMask: 26,
name: 'public-subnet',
subnetType: SubnetType.PUBLIC,
};
const vpc = new Vpc(this, props.generateId('vpc'), {
maxAzs: 2,
subnetConfiguration: [privateSubnectConfiguration, publicSubnectConfiguration],
natGateways: 1,
});
vpc.addGatewayEndpoint(props.generateId('internet-gateway'), {
service: { name: "ig-service" }
})这会导致The Vpc Endpoint Service 'ig-service' does not exist (Service: AmazonEC2; Status Code: 400; Error Code: InvalidServiceName;出错
我在文档中看到了对CfnInternetGateway的引用,但就是想不出如何将新的VPC连接到我的VPC?
你能帮我解决语法问题吗?
发布于 2019-11-12 16:37:46
首先,您无法直接访问私有子网中的数据库。您必须在您的公共子网中部署代理实例,并转发访问数据库所需的端口。
使用CDK私有网络构造时,每当创建公网子网时,默认情况下都会创建公网网关。也会为公有子网设置默认路由。因此,您应该从代码中删除addGatewayEndpoint(),这将添加一个不需要的Gateway VPC Endpoint。
您还可以考虑使用SubnetType.ISOLATED创建不带NAT GW的私有子网,这在您的情况下可能是多余的。SubnetType.PRIVATE默认创建NAT网关。
https://stackoverflow.com/questions/58812479
复制相似问题