连接 AWS Api 网关和私有 ALB

Connecting AWS Api Gateway and private ALB

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

但我仍然发现了一些文章,例如 this one,其中人们描述了他们如何在没有 VPC_links 的情况下集成 Api 网关和 LB。就我而言,在将我的内部 ALB 与我的 apigateway 集成时,我总是看到 invalid endpoint address 错误。我想这仅适用于 public 资源(面向互联网的 LB)?

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

我也一直在努力解决这个问题。对于 REST API,您可以为 NLB 创建一个 VPC link,但不能为 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)。这令人沮丧,我希望他们能为 REST APIs 的 VPC links 添加 ALB 支持,但现在这是不可能的。

至于你问题的第二部分,我不确定你所说的 "endpoint integration," 是什么意思,所以恐怕我无法帮助你。

标记为正确的答案已过时。现在可以使用 VPC Link 通过 HTTP 私有集成将 API 网关与面向内部的 ALB 集成。 有关分步配置,请参阅