了解 AWS API 网关自定义域名

Understanding AWS API Gateway Custom Domain Names

我很难理解 AWS API 网关自定义域的工作原理。

我已经为我的api设置了一个Regional Custom Domain Name,比如api.example.com。结果是 Target Domain Name 的形式:

aaaaaaaaaaaa.execute-api.us-east-1.amazonaws.com

如果我尝试使用此 link 调用 API,例如:

https://aaaaaaaaaaaa.execute-api.us-east-1.amazonaws.com/mymap/mystage/example

但是我得到了 403 Forbidden.

但是,如果我转到 Stages 和 select mystage,就会有一个大蓝色 Invoke URL,其形式为:

https://bbbbbbbbbb.execute-api.us-east-1.amazonaws.com/mymap/mystage/example

哪个有效!

所以这是我的前 2 个问题:

1 - 为什么 API 网关为同一个 API(Target Domain NameInvoke URL)生成 2 个不同的 URL?

2 - 为什么 Invoke URL 有效而 Target Domain Name 无效?


这是我问题的第二部分,我正在尝试为 Regional Custom Domain Name 配置配置 Route 53,但我找不到任何关于正确方法的示例(只是为了Edge Optimized Custom Domain Name).

我试图为 api.example.com 创建一个 A 记录作为 Aliasaaaaaaaaaaaa.execute-api.us-east-1.amazonaws.com,但它说:

The record set could not be saved because: - Alias Target contains an invalid value.

所以我为 api.example.com 创建了一个 CNAME 记录,将 Alias 设置为 No (设置为 Yes 会带来与A 记录案例)和值为 aaaaaaaaaaaa.execute-api.us-east-1.amazonaws.com 但是当我尝试将我的 API 调用为 https://api.example.com/mymap/mystage/example.[=44= 时我得到 404 ]

我做错了什么?


编辑:

此帖子已移至 AWS 论坛 here


编辑 2:

显然,正如 AWS 支持人员所说,API 网关处理自定义域名和常规 API 网关 URL 的方式不一致,所有内容都记录在这个 AWS 论坛帖子 here

Route53 控制台尚不支持 API 网关作为 ALIAS 目标。您必须使用 CLI/SDK(或直接点击 R53 API)创建别名记录,并提供此页面上列出的目标托管区域:http://docs.aws.amazon.com/general/latest/gr/rande.html#apigateway_region

Why does API Gateway generate 2 different URLs for the same API (the Target Domain Name and the Invoke URL)?

Invoke URL 是始终可用有效 SSL 证书的默认端点。此端点由 API 网关管理。目标域名是可选的(您必须设置自定义域名),DNS 和 SSL 证书由 you/customer.

管理

谢谢, 杰克

如果有人想了解 API 网关发生了什么,请查看 this thread

它基本上是说 API 网关处理常规 URLs(如 aaaaaaaaaaaa.execute-api.us-east-1.amazonaws.com)的方式不同于它处理自定义域名 URLs(如 api.myservice.com).因此,当 API 网关将您的 API 请求转发给您的 Lambda 函数时,您的 Lambda 函数将收到不同的 path 值,具体取决于您用来调用您的 URL 的类型API.

在我的例子中,我使用的是 serverless java container,因此我可以 运行 AWS Lambda 上的 Jersey Web 服务。由于 URL 没有被相同地传递给两个 URL,Jersey 将 return 一个 404 当它收到一个对其配置格式错误的 URL 时。

AWS API 网关团队表示他们正在考虑统一此 URL 调用,但到目前为止(2018 年 1 月)没有妥协。

Jack 回答了我问题的 53 号公路部分,我没有什么要补充的。