diff --git a/packages/@aws-cdk/aws-ec2/lib/instance.ts b/packages/@aws-cdk/aws-ec2/lib/instance.ts index cbac936427ab7..1cd3d73a62c9f 100644 --- a/packages/@aws-cdk/aws-ec2/lib/instance.ts +++ b/packages/@aws-cdk/aws-ec2/lib/instance.ts @@ -291,7 +291,7 @@ export class Instance extends Resource implements IInstance { if (selected.length === 1) { subnet = selected[0]; } else { - throw new Error('When specifying AZ there has to be exactly one subnet of the given type in this az'); + throw new Error(`Need exactly 1 subnet to match AZ '${props.availabilityZone}', found ${selected.length}. Use a different availabilityZone.`); } } else { subnet = subnets[0]; diff --git a/packages/@aws-cdk/aws-ec2/lib/vpc.ts b/packages/@aws-cdk/aws-ec2/lib/vpc.ts index a7fa786066abb..0ad96716bd562 100644 --- a/packages/@aws-cdk/aws-ec2/lib/vpc.ts +++ b/packages/@aws-cdk/aws-ec2/lib/vpc.ts @@ -1910,13 +1910,13 @@ const DUMMY_VPC_PROPS: cxapi.VpcContextResponse = { type: cxapi.VpcSubnetGroupType.PUBLIC, subnets: [ { - availabilityZone: 'dummy-1a', + availabilityZone: 'dummy1a', subnetId: 's-12345', routeTableId: 'rtb-12345s', cidr: '1.2.3.4/5', }, { - availabilityZone: 'dummy-1b', + availabilityZone: 'dummy1b', subnetId: 's-67890', routeTableId: 'rtb-67890s', cidr: '1.2.3.4/5', @@ -1928,13 +1928,13 @@ const DUMMY_VPC_PROPS: cxapi.VpcContextResponse = { type: cxapi.VpcSubnetGroupType.PRIVATE, subnets: [ { - availabilityZone: 'dummy-1a', + availabilityZone: 'dummy1a', subnetId: 'p-12345', routeTableId: 'rtb-12345p', cidr: '1.2.3.4/5', }, { - availabilityZone: 'dummy-1b', + availabilityZone: 'dummy1b', subnetId: 'p-67890', routeTableId: 'rtb-57890p', cidr: '1.2.3.4/5', diff --git a/packages/@aws-cdk/aws-ec2/test/test.vpc.from-lookup.ts b/packages/@aws-cdk/aws-ec2/test/test.vpc.from-lookup.ts index 956f88f0aad0a..0c88693f1e7db 100644 --- a/packages/@aws-cdk/aws-ec2/test/test.vpc.from-lookup.ts +++ b/packages/@aws-cdk/aws-ec2/test/test.vpc.from-lookup.ts @@ -172,6 +172,22 @@ export = { restoreContextProvider(previous); test.done(); }, + + 'AZ in dummy lookup VPC matches AZ in Stack'(test: Test) { + // GIVEN + const stack = new Stack(undefined, 'MyTestStack', { env: { account: '1234567890', region: 'dummy' } }); + const vpc = Vpc.fromLookup(stack, 'vpc', { isDefault: true }); + + // WHEN + const subnets = vpc.selectSubnets({ + availabilityZones: stack.availabilityZones, + }); + + // THEN + test.equals(subnets.subnets.length, 2); + + test.done(); + }, }, };