连接AWS Api网关和私有ALB

时间:2018-06-10 10:04:51

标签: amazon-web-services aws-api-gateway aws-load-balancer aws-vpc-link

我有一项任务是配置API网关以将流量路由到Lambda或Load Balancer(内部,在VPC下)。我认为可以使用简单的HTTP集成或AWS服务为ALB创建简单的集成。但经过一段时间的谷歌搜索后,我发现只有一个解决方案 - 配置NLB,然后使用VPC_Link integration。在这种情况下,一切看起来都像是在工作。

但我仍然发现了一些像this one这样的文章,其中人们描述了如何在没有VPC_links的情况下集成Api Gateway和LB.在我的情况下,当我将内部ALB与我的apigateway集成时,我总是会看到invalid endpoint address错误。我想这只适用于公共资源(面向网络的LB)?

问题的第二部分。当我配置VPC_link时,我仍然需要在集成中提供一些端点以进行证书检查和其他内容。但看起来这个端点仍然必须公开访问?问题是我在ALB下的服务有多个端点,我需要在这个Endpoint URL中提供这个端点的路径,这个端点应该是公开的,正如我现在看到的那样。因此,出于测试原因,我提供了我需要执行的公共资源和端点路径的URL。这有效但对我来说看起来太难看了。可能有任何漂亮的解决方案。

2 个答案:

答案 0 :(得分:1)

我也一直在为此苦苦挣扎。对于REST API,您可以创建到NLB的VPC链接,但不能创建到ALB的链接(这是您一直看到的invalid endpoint address问题)。可以将HTTP API直接连接到API网关(大约一个月前发布的版本API Gateway offers private integrations with AWS ELB and AWS CloudMap as part of HTTP APIs GA release)。令人沮丧的是,我希望他们能将ALB支持添加到REST API的VPC链接中,但是现在这是不可能的。

对于您的问题的第二部分,我不确定您所说的“端点集成”是什么意思,所以我恐怕无法为您提供帮助。

答案 1 :(得分:1)

标记为正确的答案已过时。现在可以使用 VPC Link 通过 HTTP 私有集成将 API Gateway 与面向内部的 ALB 集成。 有关分步配置的信息,请参阅 https://stackoverflow.com/a/67413951/2948212