You can access regional and multiregional endpoints publicly over the internet or privately from within your Virtual Private Cloud. This document explains how to access the endpoints publicly.
When you access regional endpoints from the public internet, traffic is routed through Google Cloud Standard Tier networking. The connection, including TLS termination, is handled within the destination region.
Configure public internet access to the APIs
To configure public internet access to regional API endpoints, follow these steps.
Roles
To get the permissions that you need to create a regional endpoint, ask your administrator to grant you the following IAM roles on your VPC network:
-
Compute Network Admin role (
roles/compute.networkAdmin) -
DNS Administrator role (
roles/dns.admin)
For more information about granting roles, see Manage access to projects, folders, and organizations.
You might also be able to get the required permissions through custom roles or other predefined roles.
Before you begin
Install the Google Cloud CLI. After installation, initialize the Google Cloud CLI by running the following command:
$ gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
Enable the Compute Engine, Network Connectivity Center, and Cloud DNS APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.Additionally, enable the API for the target service that you want to access through the endpoint. For example, if you want to access
spanner.me-central2.rep.googleapis.com, enable the Cloud Spanner API.Ensure that egress firewall rules permit traffic to the endpoint. The default firewall configuration for a VPC network permits this traffic because it contains an implied allow egress rule. Verify that you haven't created a higher priority egress rule that blocks the traffic.
Identify the endpoint
Determine the service and the specific region or multiregion required for your workload.
Regional endpoints have the following format:
SERVICE.REGION.rep.googleapis.comMultiregional endpoints have the following format:
SERVICE.MULTIREGION.rep.googleapis.com
Modify the DNS configuration
If your environment overrides public DNS for googleapis.com using a private
DNS zone, which is common in hybrid configurations, take these steps:
Update your DNS configuration to exclude
rep.googleapis.com. For more information, see Add, update, and delete records.Modify the DNS zone setup to exclude the
rep.googleapis.comsubdomain. Forward those queries to public DNS resolvers. For more information, see Create, modify, and delete zones.
Configure the Google Cloud CLI
To override the default API endpoint for specific services, use the
Google Cloud CLI. The following example uses the
gcloud config set command to set an
override for Cloud Storage in us-central1 and an override for
Compute Engine in europe-west1.
# Set an override for Cloud Storage in us-central1.
gcloud config set api_endpoint_overrides/storage https://storage.us-central1.rep.googleapis.com/
# Set an override for Compute Engine in europe-west1.
gcloud config set api_endpoint_overrides/compute https://compute.europe-west1.rep.googleapis.com/compute/v1/
After you set the override, gcloud CLI commands for that service use
the regional endpoint. To revert to using the default global endpoint, use the
gcloud config unset command:
gcloud config unset api_endpoint_overrides/SERVICE
Update the client SDKs
Most Google Cloud client libraries let you specify a custom endpoint during client initialization.
Python
Use client_options with api_endpoint.
from google.cloud import SERVICE
from google.api_core.client_options import ClientOptions
options = ClientOptions(api_endpoint='https://SERVICE.REGION.rep.googleapis.com')
SERVICE_client = SERVICE.Client(client_options=options, project='PROJECT_ID')
# ... use SERVICE_client as usual
Replace the following:
SERVICE: the name of your serviceREGION: the region for your endpointPROJECT_ID: the ID of your Google Cloud project
Go
Use option.WithEndpoint during client creation.
client, err := SERVICE.NewClient(ctx, projID,
option.WithEndpoint("https://SERVICE-my-endpoint.REGION.rep.googleapis.com"), // Override endpoint
Replace the following:
SERVICE: the name of your serviceREGION: the region for your endpoint
.NET
Configure Endpoint in the client builder.
Java
Use setEndpoint on the service settings builder.
The following example uses Java to connect to the endpoint for the Cloud Vision API.
ImageAnnotatorSettings settings = ImageAnnotatorSettings.newBuilder()
.setEndpoint("https://vision.REGION.rep.googleapis.com")
.build();
ImageAnnotatorClient client = ImageAnnotatorClient.create(settings);
Reference documentation
- Use the Google Cloud CLI to manage regional endpoints.
- See the
regionalEndpointsREST documentation.
What's next
- Access regional Google APIs through backends.
- See the Google Cloud supported regional service endpoints.