繁体   English   中英

AWS API Gateway HTTP API 自定义域,带有到 ALB 的 VPC 链接

[英]AWS API Gateway HTTP API custom domain with VPC Link to ALB

我正在尝试使用将 HTTP 请求路由到 ALB 的 REGIONAL 自定义域来设置 API。 该域已在另一个 DNS 提供商处注册,因此我不会使用 Route53。

概念: /path/to/service --> ALB (Listener: /path/* ) --> ECS

我首先尝试使用原始调用 URL https://cuxxxxmvk0.execute-api.ap-east-1.amazonaws.com/stage/path/to/service ,它返回 ALB 上下文路径错误(这是预期的,因为 ALB 获取/stage/path/to/service没有打任何前缀)。

然后我创建了一个带有映射到舞台的 API 映射(没有基本路径)的自定义域,并尝试使用提供的“API 网关域名”(由自定义域生成的域名)调用它。 Full URL: https://d-yjexxxds3.execute-api.ap-east-1.amazonaws.com/path/to/service但是,它返回{"message":"Not Found"}

API网关域名


所以我的问题是:

自定义域生成的“API网关域名”是如何工作的? 我可以用它直接调用 API 吗?

是否必须对它进行 CNAME(即CAME api.mydomain.com d-yjexxxds3.execute-api.ap-east-1.amazonaws.com )?

我可以让我的最终端点成为api.mydomain.com/path/to/service而没有路径中的阶段吗?

从问题中我可以看到您正在尝试使用CNAME解析为 URL/some/path 但这不是它的工作原理。 DNS 服务只会将您的 CNAME 映射到其他一些 URL。 路径 (/some/path) 部分将与您的域或 API-GW URL 保持相同。

这里要注意的另一件事是,既然你不使用Route53,你不需要Custom Domain Name API-GW的。 创建一个类似于example.com CNAME d-yjexxxds3.execute-api.ap-east-1.amazonaws.com CNAME

我建议您在 ALB 前缀中添加/stage ,以便 API-GW 和您自己的域可以访问它。

自定义域生成的“API网关域名”是如何工作的? 我可以用它直接调用 API 吗?

是的你可以

是否必须对它进行 CNAME(即 CAME api.mydomain.com d-yjexxxds3.execute-api.ap-east-1.amazonaws.com)?

它可以是 CNAME(当 DNS 由外部提供商管理时),也可以是 ALIAS(如果您在 Route53 中管理 DNS,则直接返回 A 记录)。 请注意,您需要在证书管理器中获得经过验证的证书。

我可以让我的最终端点成为 api.mydomain.com/path/to/service 而没有路径中的阶段吗?
https://d-xxxxxxds3.execute-api...

据我所知,您应该通过定义的自定义域名 (api.mydomain.com) 来调用 API。 如果调用d-..域会起作用,我不确定

https://api.mydomain.com/path/to/api

我不确定什么在您的设置中不起作用。 实际上,在自定义域映射中,您可以直接映射到某个阶段,因此您可以将 API 调用为https://customdomain/path/to/api我们https://customdomain/path/to/api这种方式工作。

长话短说,您的设置/想法通常很好。 您可以在 API 网关或阶段启用登录以找出不工作的内容(如果 API GW 或后端 ELB 重新调整了 NOT FOUND)

暂无
暂无

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

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