【发布时间】:2018-05-29 09:18:45
【问题描述】:
我很难理解 AWS API Gateway 自定义域的工作原理。
我为我的 api 设置了一个 Regional Custom Domain Name,例如 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 无效?
这是我问题的第二部分,我正在尝试为Regional Custom Domain Name 配置配置Route 53,但我找不到任何有关正确方法的示例(仅适用于Edge Optimized Custom Domain Name)。
我尝试为api.example.com 创建一个A 记录作为Alias 到aaaaaaaaaaaa.execute-api.us-east-1.amazonaws.com,但它说:
无法保存记录集,因为: - 别名目标包含无效值。
所以我为api.example.com 创建了一个CNAME 记录,将Alias 设置为No(设置为Yes 会带来与A 记录案例中相同的错误消息)并将值设置为@ 987654350@ 但是当我尝试以https://api.example.com/mymap/mystage/example 调用我的API 时,我得到了404。
我做错了什么?
编辑:
此主题已移至 AWS 论坛 here
编辑 2:
显然,正如 AWS 支持人员所说,API 网关如何处理自定义域名和常规 API 网关 URL 存在不一致,所有这些都记录在此 AWS 论坛线程here
【问题讨论】:
标签: amazon-web-services aws-api-gateway amazon-route53