将方法添加到 Class AWS CDK

Add Method to Class AWS CDK

https://github.com/vennemp/cdk-nwfirewall

看src/index.tx

我已经为 AWS CDK 发布了一个 npm 包来部署 AWS 网络防火墙。它工作得很好,但我目前正在扩展功能并消除错误。我是 JS/TS 的新手,所以请原谅意大利面条代码。

我的 Class 是 FirewallStack,它创建了一个 vpc - 第 62 行。

当我创建 FirewallStack 时,我希望能够引用在 vpc 中创建的子网,甚至可能将它们组合在一起 - 所以如果我想在 public 子网中启动负载均衡器,我可以调用防火墙堆栈并有一个方法来获取 public 子网并将其传递给我的负载平衡器。

我看过其他人创建方法的例子,但它不起作用。

尝试过:

public listPublicSubnets (): FirewallStack {
   vpc.SubnetSelection(TYPE=PUBLIC)
}

################

public listPublicSubnet(): FirewallStack {
    return publicSubnets
}

你的方法被声明为 return 类型 FirewallStack 的值,但你实际想要做的是 return 子网,其类型为 ISubnet[].

应该这样做:

public listPublicSubnets(): ISubnet[] {
   return vpc.publicSubnets
}

编辑:查看 GitHub 上的代码,在 class 上使用此方法还假定您已将 vpc 作为属性添加到 class 中。您可以通过将 private vpc: IVpc 添加到 FirewallStack class 来实现,在第 62 行,您可以通过 vpc = new ec2.Vpc(...) 设置属性,而不是将 vpc 分配给局部变量你现在做。