[英]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 吗?
是否必须对它进行 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.