hi all, trying to create some resources inside an ...
# general
b
hi all, trying to create some resources inside an AWS VPC defined by another stack. I’m using the
awsx.ec2.Vpc.fromExistingIds()
method but can’t quite figure out how to supply the right IDs. here’s what I’ve got so far:
Copy code
function toArray<T>(v: T | T[]) {
    return Array.isArray(v) ? v : [v];
}

const cfg = new pulumi.Config();

// Grab the VPC ID from the existing VPC stack
const vpcStack = new pulumi.StackReference(cfg.require("vpcStack"));

// Now create a VPC object from the id
const vpc = awsx.ec2.Vpc.fromExistingIds("vpc", {
    vpcId: vpcStack.getOutput("vpcId"),
    publicSubnetIds: toArray(vpcStack.getOutput("publicSubnetIds"))
});
however when running pulumi up, i get the below error message. I’m pretty new to typescript so my guess is I’m not handling the
Output<T>
type returned from
getOutput()
properly. the output should be an array of subnet IDs, eg:
Copy code
[
    "subnet-abcdefg123456",
    "subnet-foobah12345",
    "subnet-blahblahblah"
]
however it appears its not making it through properly.
t
Try
Copy code
vpcStack.getOutput("publicSubnetIds").apply(toArray)
b
that gives me a compiler error
t
That's a good error in a sense that it shows the problem at compile time. It looks like the type of
publicSubnetIds
is not great - it doesn't allow an
Output
. Try
toArray(vpcStack.getOutputSync("publicSubnetIds"))
?
b
that appears to be working… thanks! I’ll keep going and see what happens