问题描述
我正在使用CDK(打字稿)配置API网关,当前我必须使用HttpIntegration为在VPC下运行的EC2实例创建一个端点。
所以我下一个:
api.root.resourceForPath("/{pathVar}/smth/{pathVar}")
.addMethod("GET",new HttpIntegration("https://endpoint-from-ec2-under-vpc",{
options: {
connectionType: ConnectionType.VPC_LINK,vpcLink: ???
}
}),...
在哪里可以找到vpcLink?
我尝试过这种方式:
const vpc= VpcLink.fromVpcLinkId(this,"vpc-link","VpcID");
但是在部署过程中-错误:Vpc link VpcID was not found in account ********
所以 VpcLinkId 不是 VpcId ,那是什么?
在其他地方的AWS控制台中我可以在哪里找到它?
解决方法
VPC链接ID实际上来自VPCLink resource。
此资源是一个特殊的连接,允许API网关服务通过负载平衡器私密地连接到您的EC2 / ECS / EKS资源(对于REST API,它将是NLB,对于HTTP API,它将是ALB)
然后,当在API网关配置中引用该私有连接时,便可以与负载平衡器建立专用连接,因此HTTP流量无需传输公共Internet(将资源保持私有)。
如果您不需要使用这些私有资源中的任何一个,则不需要创建此连接,这样做可以将您的API网关设置为位于VPC中,只需使用PrivateLink创建一个链接即可。
有关更多信息,请查看Set up API Gateway private integrations文档。
,在aws控制台中,
红色