根据https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-private.html,可以使用私有VPC链接将API网关与内部应用程序负载均衡器集成。
但是我无法让它发挥作用。
我有一项可通过 ALB 在内部访问的服务。ALB 没有公共 IP,它平衡 AWS Fargate 集群中的请求(全部位于私有子网内)。
ubuntu@ip-10-0-40-89:~$ curl http://internal-sasw-alb-355535611.eu-west-1.elb.amazonaws.com/health
Assembly=Sasw.SampleService, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null, Environment=Production, CurrentTime=05/05/2021 08:36:00
Run Code Online (Sandbox Code Playgroud)
所以内部一切都很好,我可以提供服务GET http://alb_url/health
我想访问相同的服务,只是这次通过 API 网关。所以我做了以下事情:
foo与 VPC 关联的 HTTP API 类型的 VPC 链接,特别是与 EC2 实例(Fargate 集群)所在的 3 个私有子网关联的 VPC链接10.0.40.0/24,10.0.50.0/2410.0.60.0/24foo。http://internal-rubiko-alb-355535611.eu-west-1.elb.amazonaws.com(我也尝试过http://internal-rubiko-alb-355535611.eu-west-1.elb.amazonaws.com/{proxy}但http://internal-rubiko-alb-355535611.eu-west-1.elb.amazonaws.com/{proxy+}没有成功)/%7Bproxy%7D和集成目标ANY http://internal-rubiko-alb-355535611.eu-west-1.elb.amazonaws.com/{proxy}$default并自动部署https://7ki6gvrngl.execute-api.eu-west-1.amazonaws.com …amazon-web-services amazon-vpc aws-api-gateway aws-application-load-balancer