为 API Gateway API 设置边缘优化的自定义域名
为边缘优化的 API 创建自定义域名时,API Gateway 会设置 CloudFront 分配和 DNS 记录,以将 API 域名映射到 CloudFront 分配域名。然后,对 API 的请求将通过映射的 CloudFront 分配路由到 API Gateway。此映射适用于针对要通过映射的 CloudFront 分配路由到 API Gateway 的自定义域名绑定的 API 请求。
注意事项
以下是边缘优化的自定义域名的注意事项。
-
要设置边缘优化的自定义域名或更新其证书,您必须有权更新 CloudFront 分配。
更新 CloudFront 分配需要以下权限:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCloudFrontUpdateDistribution", "Effect": "Allow", "Action": [ "cloudfront:updateDistribution" ], "Resource": [ "*" ] } ] }
-
您必须为您在美国东部(弗吉尼亚州北部)-
us-east-1
区域的边缘优化自定义域名请求或导入证书。 -
API Gateway 在 CloudFront 分配上通过利用服务器名称指示 (SNI) 来支持边缘优化的自定义域名。有关在 CloudFront 分配上使用自定义域名的更多信息(包括所需证书格式和证书密钥最大长度),请参阅 Amazon CloudFront 开发人员指南 中的使用备用域名和 HTTPS。
-
边缘优化的自定义域名需要大约 40 分钟时间准备就绪。
-
创建边缘优化的自定义域名后,您必须创建 DNS 记录,以将自定义域名映射到 CloudFront 分配名称。
创建边缘优化的自定义域名
以下过程说明了如何为 API 创建边缘优化的自定义域名。
边缘优化的自定义域名需要大约 40 分钟时间准备就绪,但控制台会立即以
的形式显示关联的 CloudFront 分配域名以及证书 ARN。同时,您可以继续下一步,即配置 DNS 记录别名以将自定义域名映射到关联的 CloudFront 分配域名。distribution-id
.cloudfront.net
为边缘优化的自定义域名创建 DNS 记录
在开始创建边缘优化的自定义域名后,请设置 DNS 记录别名。
我们建议您使用 Route 53 为自定义域名创建 A 记录别名,同时指定 CloudFront 分配域名作为别名目标。这意味着,Route 53 可以路由自定义域名,即使是顶级域名也是如此。有关更多信息,请参阅 Amazon Route 53 开发人员指南 中的在别名资源记录集和非别名资源记录集之间进行选择。
有关 Amazon Route 53 的说明,请参阅 Amazon Route 53 开发人员指南中的使用域名将流量路由到 Amazon API Gateway API。
配置 API 的基本路径映射,将自定义域名作为主机名
您可以利用基本路径映射将一个自定义域名作为多个 API 的主机名。这样,您就可以通过自定义域名和关联基本路径的组合访问 API。
例如,如果您在 API Gateway 中创建了一个名为 PetStore
的 API 和另一个名为 Dogs
的 API,然后设置了一个自定义域名 api.example.com
,则可以将 PetStore
API 的 URL 设置为 https://api.example.com
。
这会将 PetStore
API 与空字符串的基本路径相关联。如果您将 PetStore
API 的 URL 设置为 https://api.example.com/PetStore
,系统会将 PetStore
API 与 PetStore
基本路径相关联。您可以为 MyDogList
API 分配 Dogs
基本路径。然后,https://api.example.com/MyDogList
的 URL 就成了 Dogs
API 的根 URL。
要在多个级别上配置 API 映射,您只能使用区域自定义域名。不支持边缘优化的自定义域名。有关更多信息,请参阅 将 API 阶段映射到 REST API 的自定义域名。
以下过程设置 API 映射,将您的自定义域名的路径映射到 API 阶段。
轮换 ACM 中导入的证书
ACM 会自动处理其所颁发证书的续订事宜。您不需要为自定义域名轮换 ACM 颁发的任何证书。CloudFront 会代表您处理这一事宜。
但是,如果您将证书导入到 ACM 并将其用于自定义域名,则您必须在证书到期前进行轮换。这包括导入域名的新第三方证书和将现有证书轮换为新证书。新导入的证书到期后,您需要重复上述过程。或者,您也可以请求 ACM 为域名颁发新证书并将现有证书轮换为 ACM 颁发的新证书。之后,您就可以让 ACM 和 CloudFront 自动为您处理证书轮换。要创建或导入新的 ACM 证书,请按照在 ACM 中创建或导入 SSL/TLS 证书中的步骤操作。
以下过程说明了如何为域名轮换证书。
注意
轮换导入到 ACM 的证书大约需要 40 分钟。
调用具有自定义域名的 API
如果使用的 URL 正确,则调用具有自定义域名的 API 与调用具有默认域名的 API 是一样的。
以下示例针对两个 API(udxjef
和 qf3duz
),将它们在指定区域 (us-east-1
) 的一组默认 URL 与其给定自定义域名 (api.example.com
) 下的相应自定义 URL 进行了对比。
API ID | 阶段 | 默认 URL | 基本路径 | 自定义 URL |
---|---|---|---|---|
udxjef | prod | https://udxjef.execute-api.us-east-1.amazonaws.com/prod | /petstore | https://api.example.com/petstore |
udxjef | tst | https://udxjef.execute-api.us-east-1.amazonaws.com/tst | /petdepot | https://api.example.com/petdepot |
qf3duz | dev | https://qf3duz.execute-api.us-east-1.amazonaws.com/dev | /bookstore | https://api.example.com/bookstore |
qf3duz | tst | https://qf3duz.execute-api.us-east-1.amazonaws.com/tst | /bookstand | https://api.example.com/bookstand |
API Gateway 通过使用服务器名称指示 (SNI)
API Gateway 在 CloudFront 分配中强制实施 SNI。有关 CloudFront 如何使用自定义域名的信息,请参阅 Amazon CloudFront 自定义 SSL