繁体   English   中英

连接 AWS Api 网关和私有 ALB

[英]Connecting AWS Api Gateway and private ALB

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

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

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

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

我也一直在为此苦苦挣扎。 对于 REST API,您可以创建指向 NLB 的 VPC 链接,但不能创建 ALB(这是您一直看到的invalid endpoint address问题)。 可以将 HTTP API 直接连接到 API 网关(大约一个月前发布 - API 网关提供与 AWS ELB 和 AWS CloudMap 的私有集成,作为 HTTP API GA 版本的一部分)。 这令人沮丧,我希望他们为 REST API 的 VPC 链接添加 ALB 支持,但现在这是不可能的。

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

第一部分被接受了,所以我想更多地关注问题的第二部分。 可以通过 VPC Link 为 HTTP 提供的请求修改来传播 Path。

API 网关路由可以定义为/foo/api/{param}

然后继续将此路由与预配置的 VPC 链接集成

导航到VPC 集成->编辑参数映射->所有传入请求,然后提供以下配置;

要修改的参数path | 修改类型Overwrite | /api/$request.path.param

请注意,这是一级通配符,因此/foo/api/bar将通过代理,但/foo/api/bar/xyz不会。

潜在的解决方案是将 Route 指定为/foo/api/{param+}以支持多级,但我没有尝试过,所以请随意测试。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM