了解 AWS API Gateway 自定义域名

问题描述 投票:0回答:2

我很难理解 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
不起作用?


这是我问题的第二部分,我正在尝试为

Route 53
配置配置
Regional Custom Domain Name
,但我找不到任何有关正确方法的示例(仅针对
Edge Optimized Custom Domain Name
)。

我尝试为

A
创建一条
api.example.com
记录作为
Alias
aaaaaaaaaaaa.execute-api.us-east-1.amazonaws.com
,但它说:

记录集无法保存,因为: - 别名目标包含无效值。

因此,我为

CNAME
创建了一条
api.example.com
记录,将
Alias
设置为
No
(设置为
Yes
会带来与
A
记录情况相同的错误消息)并将值设置为
aaaaaaaaaaaa.execute-api.us-east-1.amazonaws.com
但是当我尝试将 API 调用为
404
时,我得到了
https://api.example.com/mymap/mystage/example

我做错了什么?


编辑:

此帖子已移至 AWS 论坛此处


编辑2:

显然,正如 AWS 支持人员所说,API Gateway 处理自定义域名和常规 API Gateway URL 的方式不一致,所有内容都记录在此 AWS 论坛主题此处

amazon-web-services aws-api-gateway amazon-route53
2个回答
5
投票

API Gateway 处理常规 URL(如

aaaaaaaaaaaa.execute-api.us-east-1.amazonaws.com
)的方式与处理自定义域名 URL(如
api.myservice.com
)的方式不同。因此,当 API Gateway 将您的 API 请求转发到您的 Lambda 函数时,您的 Lambda 函数将收到不同的
path
值,具体取决于您用于调用 API 的 URL 类型。

就我而言,我使用的是 无服务器 Java 容器,因此我可以在 AWS Lambda 上运行 Jersey Web 服务。由于两个 URL 的 URL 传递方式不同,因此当 Jersey 收到配置格式错误的 URL 时,将返回 404。

AWS API Gateway 团队表示,他们正在考虑统一此 URL 调用,但到目前为止(2018 年 1 月)尚未做出妥协。

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


4
投票

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

为什么 API Gateway 会为同一个 API 生成 2 个不同的 URL( 目标域名和调用 URL)?

调用 URL 是默认端点,通过有效的 SSL 证书始终可用。该端点由 API 网关管理。目标域名是可选的(您必须设置自定义域名),DNS和SSL证书由您/客户管理。

谢谢, 杰克

© www.soinside.com 2019 - 2024. All rights reserved.