我有两个已检查的异常:TestException1和TestException2以及以下代码:
void p1() throws TestException1{
p2();
}
void p2() throws TestException1 {
p3();
}
void p3() throws TestException1 {}
Run Code Online (Sandbox Code Playgroud)
对p3的签名进行如下编辑是否违反了开闭原则?
void p3() throws TestException1, TestException2 {}
Run Code Online (Sandbox Code Playgroud) 我正在使用新的云开发工具包 (CDK) 在 AWS 上使用 Java 语言构建基础设施。
我正在使用公共子网上的堡垒主机与私有子网上的 RDS 实例进行通信,因此我通过堡垒主机上的 ssh 隧道从外部访问数据库(在私有子网上)。
我以这种方式创建了 BastionHost:
BastionHostLinux
.Builder
.create(scope, bastionId)
.vpc(vpc)
.instanceType(InstanceType.of(InstanceClass.BURSTABLE2, InstanceSize.SMALL))
.subnetSelection(subnetSelection)
.instanceName(bastionName)
.build();
Run Code Online (Sandbox Code Playgroud)
我没有找到任何方法来创建 ssh 密钥对或将 ssh 密钥对关联到实例,所以当我尝试连接时,aws 告诉我我没有任何与 ec2 实例关联的 ssh 密钥对。
我的问题是:如何使用 CDK 将已存在的密钥对与 ec2 实例相关联?或者,(最好)如何使用 CDK 创建新的密钥对?