3

上下文:我正在使用 cdk 创建一个新堆栈。此堆栈将使用一个 vpc id,它是来自同一帐户中不同堆栈的输出,它不是由 cdk 生成的。

我正在寻找相当于

Fn::ImportValue: ExportedName

为了在 cdk 中创建一个 VPC,然后可以将资源附加到它上面。

然后,我将使用该输出来查找 VPC:

Vpc.fromVpcAttributes(this, "MyImportedVPC", VpcAttributes.builder()
    .withVpcId(importedValue).build());

我能找到的使用 cdk 导入值的所有参考都是关于导入(或者更确切地说,不必手动导入)在堆栈中定义的值,该堆栈也是由 cdk 创建的。我错过了什么吗?

4

1 回答 1

6

我一直在寻找Fn.importValue

Fn.importValue("ExportedName")

List<String> availabilityZones = java.util.stream.Stream
        .of("us-west-2a", "us-west-2b", "us-west-2c")
        .collect(toList());

String privateSubnet1 = Fn.importValue("PrivateSubnet01");
String privateSubnet2 = Fn.importValue("PrivateSubnet02");
String privateSubnet3 = Fn.importValue("PrivateSubnet03");

List<String> privateSubnets = java.util.stream.Stream
        .of(privateSubnet1, privateSubnet2, privateSubnet3)
        .collect(toList());

VpcAttributes byId = VpcAttributes.builder()
        .withVpcId(vpcId)
        .withAvailabilityZones(availabilityZones)
        .withPrivateSubnetIds(privateSubnets)
        .build();

return Vpc.fromVpcAttributes(this, "ImportedVpc", byId);
于 2019-08-16T13:12:54.093 回答