您的 API 部署后,API 用户需要通过域名(而非 IP 地址)来访问该 API。您可以执行以下任一操作:
- 将
.endpoints.PROJECT_ID.cloud.goog
配置为域名(其中PROJECT_ID
是您的 Google Cloud 项目 ID)。 - 或者注册您自己的域名(例如
example.com
),这需要执行以下步骤:- 配置 DNS 域名服务器(或使用 Google Cloud DNS)。
- 更新注册表地址。
- 创建和维护 DNS 记录。
如果您已有 DNS 基础架构,或者想注册自己的域名,请参阅通过域名提供 API 了解详情。
本页介绍如何将 Cloud Endpoints API 配置为使用 .endpoints.PROJECT_ID.cloud.goog
作为域名。本页面上的配置步骤适用于使用 OpenAPI 并在 Compute Engine、Google Kubernetes Engine 或 Kubernetes 上运行的 API。
App Engine 上运行的 API 不支持 .endpoints.PROJECT_ID.cloud.goog
域名。对于 App Engine 上运行的 API,建议您使用 PROJECT_ID.appspot.com
作为 Endpoints 服务名称。将 API 部署到 App Engine 时,系统会自动创建名称格式为 PROJECT_ID.appspot.com
的 DNS 条目。
.cloud.goog
网域由 Google 管理,并由 Google Cloud 客户共享。由于 Google Cloud 项目的 ID 必须保持全局唯一,因此采用 .endpoints.PROJECT_ID.cloud.goog
格式的域名是独一无二的,可用作 API 的域名。配置 .endpoints.PROJECT_ID.cloud.goog
域名是可选操作。您可以根据需要注册自己的域名。
前提条件
本页面首先假定您已经创建了 Cloud Endpoints API 并已将其部署到 Compute Engine、Google Kubernetes Engine 或 Kubernetes 上。如果您需要使用一个 API 进行测试,则可以参阅其中一个教程来配置和部署示例 API。
配置 DNS
以下过程介绍了如何为使用 .endpoints.[PROJECT_ID].cloud.goog
作为 Endpoints 服务名称的 Cloud Endpoints API 配置 DNS,其中 [PROJECT_ID]
代表您的 Google Cloud 项目 ID。为方便起见,该过程将您的 OpenAPI 配置文件称为 openapi.yaml
。
要配置 DNS,请执行以下步骤:
- 打开
openapi.yaml
并将x-google-endpoints
字段添加到文件中,如以下代码段所示:swagger: "2.0" host: "[API_NAME].endpoints.[PROJECT_ID].cloud.goog" x-google-endpoints: - name: "[API_NAME].endpoints.[PROJECT_ID].cloud.goog" target: "[IP_ADDRESS]"
通常,您将
host
字段和x-google-endpoints.name
字段配置为相同值。部署 OpenAPI 规范时,host
字段中指定的文本将用作 Endpoints 服务的名称。 - 将
[API_NAME]
替换为您的 API 名称(例如bookstore
或my-cool-api
)。 - 将
[PROJECT_ID]
替换为您的 Google Cloud 项目 ID。 - 将
[IP_ADDRESS]
替换为 IPv4 地址。例如,如果您将 Endpoint API 服务部署到 Compute Engine 虚拟机实例,那么您可以使用该虚拟机的外部 IP 地址。或者,如果您在负载平衡器后面的一组虚拟机实例(或 GKE pod)上运行代码,那么您可以使用该负载平衡器的 IP 地址。
- 使用以下命令将新的 OpenAPI 规范部署到 Service Management:
gcloud endpoints services deploy openapi.yaml
例如,如果在 openapi.yaml
文件中指定以下内容:
swagger: "2.0" host: "my-cool-api.endpoints.my-project-id.cloud.goog" x-google-endpoints: - name: "my-cool-api.endpoints.my-project-id.cloud.goog" target: "192.0.2.1"
使用上述 gcloud
命令部署 openapi.yaml
时,Service Management 会创建一条 DNS A 记录 my-cool-api.endpoints.my-project-
id.cloud.goog
,该记录将解析为目标 IP 地址 192.0.2.1
。新的 DNS 配置可能需要几分钟的时间才能传播。