如何通过Pulumi将VPC子网添加至VpcConnector?代码报错求助
解决Pulumi中VPC子网添加至App Runner VpcConnector的类型错误
问题出在你没有正确调用getSubnetsIds方法——你把方法本身传给了pulumi.output,而不是调用方法后得到的子网ID数组。getSubnetsIds是一个返回Promise<Output<string>[]>的函数,直接包裹它会导致类型不匹配,因为VpcConnector的subnets参数需要的是字符串数组或对应的Output类型。
修正后的代码示例
方式1:指定子网类型(推荐,比如私有子网)
const vpcConnector = new awsc.apprunner.VpcConnector("vpc-connector", { securityGroups: [ec2SecurityGroup.id], // 调用getSubnetsIds并指定子网类型,用pulumi.output处理异步结果 subnets: pulumi.output(vpc.getSubnetsIds({ type: "PRIVATE_WITH_EGRESS" })), vpcConnectorName: "my-vpc-connector", });
方式2:获取所有子网(不指定类型)
const vpcConnector = new awsc.apprunner.VpcConnector("vpc-connector", { securityGroups: [ec2SecurityGroup.id], // 直接调用getSubnetsIds获取所有子网ID subnets: pulumi.output(vpc.getSubnetsIds()), vpcConnectorName: "my-vpc-connector", });
关键说明
getSubnetsIds()会异步返回对应VPC下的子网ID数组,用pulumi.output包裹后,能让Pulumi正确追踪资源依赖,确保在子网ID就绪后再创建VpcConnector。- 子网类型参数可选,常见值包括
PRIVATE_ISOLATED、PRIVATE_WITH_EGRESS、PUBLIC,可根据你的业务需求选择。
内容的提问来源于stack exchange,提问作者Swix
相关产品推荐
相关产品推荐

