在 aws-cdk 上的 aws-rds 上,使数据库可公开访问的设置在哪里?

Posted

技术标签:

【中文标题】在 aws-cdk 上的 aws-rds 上,使数据库可公开访问的设置在哪里?【英文标题】:On aws-rds on aws-cdk, where is the setting to make database publicly accessible? 【发布时间】:2019-12-04 20:42:25 【问题描述】:

使用 AWS RDS,控制台和 CLI/API 都有一个开关来使数据库可以公开访问,但是我找不到使用提供的结构使用新的 aws-cdk 来执行此操作的方法。 Cloud Formation 类中有一个布尔值(例如 CfnDBInstance),但我找不到有关如何将其与构造结合使用的文档。 CDK 非常了不起,它只用几行代码就可以完美地设置所有内容,除了这一段。

【问题讨论】:

【参考方案1】:

数据库是否可公开访问由vpcSubnets 属性派生而来,该属性是ec2.SubnetSelection 类型。

const instance = new rds.DatabaseInstance(this, 'Instance', 
  ... // other props
  vpcSubnets:  subnetType: ec2.SubnetType.PUBLIC 
);

见https://github.com/aws/aws-cdk/blob/v1.62.0/packages/%40aws-cdk/aws-rds/lib/instance.ts#L315

【讨论】:

【参考方案2】:

对于蟒蛇人群:

database = rds.DatabaseInstance(self, "Instance", 
        ... // other props
            vpc_placement=ec2.SubnetSelection(subnet_type=ec2.SubnetType.PUBLIC),
        )

【讨论】:

以上是关于在 aws-cdk 上的 aws-rds 上,使数据库可公开访问的设置在哪里?的主要内容,如果未能解决你的问题,请参考以下文章

如何在不停机的情况下更改 AWS-RDS 实例类型?

AWS-CDK Appsync Codefirst 输入类型

如何在部署前从@aws-cdk/aws-appsync 检索 schema.graphql 文件

如何在 TypeScript 中使用 aws-cdk 在每次部署时不重建 DockerImageAsset?

如何使用 aws-cdk 从 AWS Secrets Manager 导入 EKS 密钥?

AWS-CDK 基础初始化