Har*_*uez 5 amazon-web-services amazon-vpc aws-api-gateway
我创建了一个 API 网关来运行 Lambda 函数。这旨在用作内部服务,因此我的 API 网关是私有的。为了使 API 网关能够私下访问,我执行了以下操作:
\n\n这些步骤有效地阻止公共请求,并允许通过 VPC 终端节点创建的 DNS 名称从本地发出请求。
\n\n这种方法的问题是为了调用 API,必须指定Host或x-apigw-api-id在请求中目标是让用户能够在浏览器上输入 URL 和查询字符串参数,并从服务获取响应。
Amazon API Gateway 类型、用例和性能讨论了一种避免指定 API ID 或主机的方法,但它没有提供太多细节。相关部分表示解决方案是:
\n\n\n\n\n将具有 SSL 证书(例如 api.mydomain.com)的应用程序负载均衡器放置在 PrivateLink 网络接口的 IP 地址前面。还为 api.mydomain.com 部署自定义域名,并为 API 网关部署基本路径映射。然后添加一条 Route 53 记录,将 api.mydomain.com 作为 ALB 的别名。这个解决方案相当复杂,但我们\xe2\x80\x99已经测试过它并且它有效。描述完整的解决方案超出了本文的范围,但我们稍后可能会写一篇单独的博客文章。
\n
有谁知道如何做到这一点或不同的方法?
\n我找到了这个问题的答案,所以我想我应该分享它,以防其他人想知道如何做到这一点。我联系了上面帖子的作者,他给了我一些建议。他后来写了一篇文章解释了解决方案,如果我的总结令人困惑,您可以在这里阅读他的文章:
https://cloudbanshee.com/blog/connecting-to-private-api-over-vpn-or-vpc-peering
本质上,一旦您拥有私有 API Gateway VPC 终端节点和 ALB,您需要执行以下操作:
我所缺少的并使这项工作有效的是基本路径映射。这就是 ALB 在不知道任何 ID 或主机名的情况下知道将流量路由到哪个 API 网关的方式。
我分享的帖子更详细,写得更好。我建议任何有兴趣学习如何私下访问 API 网关的人都阅读它。
| 归档时间: |
|
| 查看次数: |
9260 次 |
| 最近记录: |