为 cloud.goog 网域配置 DNS

您的 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,请执行以下步骤:

  1. 打开 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 字段是相同的。

  2. API_NAME 替换为您的 API 名称(例如 bookstoremy-cool-api)。
  3. IP_ADDRESS 替换为 IPv4 地址。该 IP 地址是一个字符串,必须用引号括起来。

    例如,如果将 Endpoint API 服务部署到 Compute Engine 虚拟机实例,则可以使用该虚拟机的外部 IP 地址。或者,如果您在负载均衡器后面的一组虚拟机实例(或 GKE pod)上运行代码,那么您可以使用该负载均衡器的 IP 地址。

  4. 使用以下命令将更新后的 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 配置可能需要几分钟的时间才能传播。

后续步骤