This page describes how to configure DNS for Google Cloud Endpoints services
using the domain name format
The configuration steps on this page are applicable for APIs running on a
Google Compute Engine or Google Container Engine instance.
.cloud.goog domain is managed by Google and shared by Google Cloud
customers. Because Cloud Platform Console project IDs 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.
.endpoints.[PROJECT_ID].cloud.goog domain name is optional.
Configuring DNS for an API on Compute Engine or Container Engine
After your API is up and running on Compute Engine or Container Engine, you will want your users to access the API through a domain name rather than an IP address. You can either:
- Configure the
.endpoints.[PROJECT_ID].cloud.googas the domain name, as described in the following procedure, To configure DNS for Compute Engine or Container Engine.
Or register your own domain name (for example,
my-company.com), which entails:
- Configuring DNS name servers (or using Google Cloud DNS).
- Updating registry addresses.
- Creating and maintaining DNS records.
If you already have a DNS infrastructure, or you want to register your own domain name, see Serving an API from Your Domain Name for more information.
To configure DNS for Compute Engine or Container Engine
- Open your OpenAPI specification file,
openapi.yaml, and add the
x-google-endpointsfield to the file as shown in the following snippet:
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]"
Typically, you will configure the
hostfield and the
x-google-endpoints.namefield to be the same. When you deploy your OpenAPI specification, the text specified in the
hostfield is used as the name of your Endpoints service.
[API_NAME]with the name of your API (for example,
[PROJECT_ID]with your Cloud project ID.
[IP_ADDRESS]with an IPv4 address.
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.
- Deploy your new OpenAPI specification to Service Management using the following command:
gcloud service-management deploy openapi.yaml
For example, if the following is specified in an
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"
When you deploy the
openapi.yaml using the above
gcloud command, Service
Management creates a DNS A-record,
id.cloud.goog, which resolves to the target IP address, 192.0.2.1. Please note
that it could take a few minutes for the new DNS configuration to propagate.