您的 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
作为域名。本页上的配置步骤适用于使用运行在 Compute Engine、Google Kubernetes Engine 或 Kubernetes 上的 gRPC 的 API。
.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 服务名称的 Endpoints API 配置 DNS。为方便起见,该过程将您的 gRPC 服务配置文件称为 service.yaml
。
要配置 DNS,请执行以下步骤:
- 打开
service.yaml
并将endpoints
字段添加到文件中,如以下代码段所示:type: google.api.Service name: API_NAME.endpoints.PROJECT_ID.cloud.goog endpoints: - name: API_NAME.endpoints.PROJECT_ID.cloud.goog target: "IP_ADDRESS"
通常,
name
字段和endpoints.name
字段是相同的。 - 将
API_NAME
替换为您的 API 名称(例如bookstore
或my-cool-api
)。 - 将
IP_ADDRESS
替换为 IPv4 地址。该 IP 地址是一个字符串,必须用引号括起来。例如,如果将 Endpoint API 服务部署到 Compute Engine 虚拟机实例,则可以使用该虚拟机的外部 IP 地址。或者,如果您在负载平衡器后面的一组虚拟机实例(或 GKE pod)上运行代码,那么您可以使用该负载平衡器的 IP 地址。
- 使用以下命令将更新后的 gRPC 配置文件部署到 Service Management:
gcloud endpoints services deploy service.yaml service.pb
例如,如果在 service.yaml
文件中指定以下内容:
type: google.api.Service name: my-cool-api.endpoints.my-project-id.cloud.goog endpoints: - name: my-cool-api.endpoints.my-project-id.cloud.goog target: "192.0.2.1"
使用上述 gcloud
命令部署 service.yaml
文件时,Service Management 会创建一条 DNS A 记录 my-cool-api.endpoints.my-project-id.cloud.goog
,该记录将解析为目标 IP 地址 192.0.2.1
。新的 DNS 配置可能需要几分钟的时间才能传播。