Configuring DNS

This page describes how to configure DNS for Google Endpoints services using the .endpoints.project-id.cloud.goog domain name. The configuration steps on this page are applicable for APIs using gRPC and running on a Google Compute Engine or Google Container Engine instance.

The .cloud.goog domain is managed by Google and shared by Google Cloud customers. Because Cloud Platform Console projects are guaranteed to have a globally unique name, a domain name in the format.endpoints.[PROJECT_ID].cloud.goog will be unique and can be used as the domain name in the URL for your API.

Configuring the .endpoints.[PROJECT_ID].cloud.goog domain name is optional.

Configuring DNS for an API on Compute Engine of Container Engine

After your API is up and running on Compute Engine or Container Engine, you will want the users of your API to access the API through a domain name rather than an IP address. You can either:

To configure DNS for Compute Engine or Container Engine

  1. Open your gRPC API configuration file (service.yaml), and add the endpoints field to the file as shown in the following snippet:
    type: google.api.Service
    name: [API_NAME].endpoints.[PROJECT_ID].cloud.goog
    endpoints:
    - name: [API_NAME].endpoints.[PROJECT_ID].cloud.goog
      target: "[IP_ADDRESS]"
      

    Note that the name field and the endpoints.name field should be the same.

  2. Replace [API_NAME] with the name of your API (for example, bookstore or my-cool-api).
  3. Replace the [PROJECT_ID] with your Cloud project ID.
  4. Replace the [IP_ADDRESS] with an IPv4 address. Note that the IP address is a string and must be enclosed in quotation marks.

    For example, if you deploy your Endpoints API service to a Compute Engine virtual machine instance, you can use the external IP of that virtual machine. Alternatively, if you run your code on a group of virtual machine instances (or Container Engine pods) behind a load balancer, you can use the IP address of the load balancer.

  5. Deploy your updated gRPC configuration file to Service Management using the following command:
        gcloud service-management deploy service.yaml service.pb
      

For example, if the following is specified in the service.yaml file:

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"

When you deploy the service.yaml file using the above gcloud command, Service Management creates a DNS A-record, my-cool-api.endpoints.my-project-id.cloud.goog, which resolves to the target IP address, 192.0.2.1.

See also

Send feedback about...

Cloud Endpoints with gRPC