为 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 作为域名。本页面上的配置步骤适用于使用 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,请执行以下步骤:

  1. 打开 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 服务的名称。

  2. [API_NAME] 替换为您的 API 名称(例如 bookstoremy-cool-api)。
  3. [PROJECT_ID] 替换为您的 Google Cloud 项目 ID。
  4. [IP_ADDRESS] 替换为 IPv4 地址。

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

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

后续步骤