跳至内容

如何为 API Gateway API 设置公共自定义域名?

2 分钟阅读
0

我想为我的 Amazon API Gateway API 使用自定义域名,而不是默认基本 URL。

简短描述

您可以为 API Gateway API 创建两种类型的自定义域名: 区域型或(仅适用于 REST API)边缘优化型

**注意:**API Gateway 支持私有 API 的自定义域名

要为 API Gateway API 设置自定义域名,请执行以下操作:

要成功配置自定义域,必须了解自定义域名类型之间的区别。以下是区域和边缘优化的自定义域名之间的一些主要区别:

  • 对于目标端点,区域自定义域名使用区域 API 端点。边缘优化自定义域名使用 Amazon CloudFront 分配
  • 对于 SSL/TLS 证书,区域自定义域名必须使用与您的 API 位于同一 AWS 区域的 SSL/TLS 证书。边缘优化自定义域名必须使用位于以下区域的证书: 美国东部(弗吉尼亚州北部)(us-east-1)
  • 对于自定义域名,您可以在不同的 AWS 区域共享区域自定义域名。边缘优化的自定义域名是唯一的。您无法将自定义域名与多个 CloudFront 分配相关联。
  • 对于域名,您无法将 WebSocket API 的区域自定义域名映射到 REST API 或 HTTP API。但是,您可以将区域自定义域与 REST API 和 HTTP API 相关联。对于 REST API,边缘优化和区域自定义域名都可以具有边缘优化 API 端点和/或区域 API 端点的映射。对于 WebSocket API 和 HTTP API,TLS 1.2 是唯一受支持的 TLS 版本。

解决方法

请求或导入 SSL/TLS 证书

在为 API 创建自定义域名之前,必须执行以下操作之一:

  • 向 AWS Certificate Manager (ACM) 请求 SSL/TLS 证书。
  • 将 SSL/TLS 证书导入 ACM。

**注意:**有关详细信息,请参阅在 AWS Certificate Manager 中准备好证书

当您申请或导入证书时,必须满足以下要求:

为 REST API、HTTP API 或 WebSocket API 创建自定义域名

对于 REST API,按照 API Gateway 中公共 REST API 的自定义域名中的说明进行操作。

对于 HTTP API,按照 API Gateway 中的 HTTP API 的自定义域名的说明进行操作。

对于 WebSocket API,按照 API 中的 WebSocket API 的自定义域名中的说明进行操作。

将流量路由到 API Gateway API

要将流量路由到自定义域,请使用 Amazon Route 53。

要将流量路由到您的 API Gateway API,请按照配置 Route 53 以将流量路由到 API Gateway 端点中的说明进行操作。

配置 Route 53 时,必须创建公共托管区或私有托管区。如果面向互联网的应用程序要向用户提供资源,请选择公共托管区。有关详细信息,请参阅使用托管区

为了确定域流量的路由目的地,Route 53 使用记录。别名记录可以更轻松地为 AWS 资源提供 DNS 查询,而 CNAME(非别名)记录可以将 DNS 查询重定向到 AWS 资源之外。有关详细信息,请参阅在别名记录和非别名记录之间进行选择

测试配置

要测试配置,您可以使用新的自定义域名来调用 API:

  1. 使用您在创建自定义域名时指定的基本路径映射对域名运行 curl 命令。
    **注意:**有关 curl 的更多信息,请参阅 curl 项目网站
  2. 验证对自定义域名的响应是否与调用 API 阶段 URL 时收到的响应相同。

相关信息

将自定义域名迁移至 API Gateway 中的其他 API 端点类型

在 AWS Certificate Manager 中申请公有证书