我很难理解 AWS API Gateway 自定义域的工作原理。
我已经设置了一个Regional Custom Domain Name
对于我的API,比如api.example.com
。结果是Target Domain Name
形式为:
aaaaaaaaaaaa.execute-api.us-east-1.amazonaws.com
如果我尝试使用此链接调用 API,例如:
https://aaaaaaaaaaaa.execute-api.us-east-1.amazonaws.com/mymap/mystage/example
但我得到一个403 Forbidden
.
但是,如果我去Stages
并选择mystage
有一个大蓝色Invoke URL
形式为:
https://bbbbbbbbbb.execute-api.us-east-1.amazonaws.com/mymap/mystage/example
哪个有效!
这是我的前两个问题:
1 - 为什么 API Gateway 为同一个 API 生成 2 个不同的 URL(Target Domain Name
和Invoke URL
)?
2 - 为什么Invoke URL
作品和Target Domain Name
不是吗?
这是我的问题的第二部分,我正在尝试配置Route 53
为了Regional Custom Domain Name
配置,但我找不到任何有关正确方法的示例(仅用于Edge Optimized Custom Domain Name
).
我尝试创建一个A
记录为api.example.com
as an Alias
to aaaaaaaaaaaa.execute-api.us-east-1.amazonaws.com
,但它说:
无法保存记录集,因为:
- 别名目标包含无效值。
所以我创建了一个CNAME
记录为api.example.com
, 环境Alias
to No
(设置为Yes
带来与中相同的错误消息A
记录案例)和值为aaaaaaaaaaaa.execute-api.us-east-1.amazonaws.com
但后来我得到了404
当我尝试调用我的 API 时https://api.example.com/mymap/mystage/example
.
我究竟做错了什么?
EDIT:
该主题已移至 AWS 论坛
EDIT 2:
显然,正如 AWS 支持人员所说,API Gateway 处理自定义域名和常规 API Gateway URL 的方式不一致,所有内容都记录在这个 AWS 论坛线程中