Cómo acceder a los extremos de las APIs regionales

En esta página, se explica cómo usar extremos de API regionales (extremos regionales) en Google Cloud, que están disponibles para la región me-central2 (KSA).

Los extremos regionales proporcionan capacidades de residencia de datos en tránsito mediante el enrutamiento y la entrega de tráfico en la misma Google Cloud región que el cliente. Cuando un cliente llama a un servicio con un extremo regional, la sesión TLS del cliente finaliza en la región indicada en el nombre del extremo. Como resultado, los extremos regionales solo deben usarse para cargas de trabajo que no tengan dependencias fuera de una sola región o jurisdicción.

Puedes conectarte a través de Internet a extremos regionales públicos. Para el tráfico de entrada de Internet, estos extremos usan el enrutamiento de mejor esfuerzo para mantener el tráfico en tránsito local en la región (o jurisdicción), ya que no usan el Google Front End (GFE) global. En su lugar, se resuelven en direcciones IP que solo se anuncian en los puntos de intercambio más cercanos a la región seleccionada.

Por ejemplo, un ingeniero de datos que trabaja en KSA puede configurar su cliente para usar BigQuery en la región me-central2 (Dammam) con el extremo de servicio regional bigquery.me-central2.rep.googleapis.com. El tráfico se enruta con el nivel Estándar y la sesión TLS de su cliente finalizará en me-central2.

En este caso, la VIP pública correspondiente al extremo de servicio regional se originará a partir de un prefijo IP anunciado por Google en los puntos de intercambio de la región. Por lo tanto, si el usuario está conectado a un ISP local en KSA, el tráfico se puede enrutar dentro de su jurisdicción.

Formato del extremo regional

Los extremos regionales usan el siguiente formato:

SERVICE_NAME.REGION.rep.googleapis.com

Los valores de marcador de posición se definen de la siguiente manera:

  • SERVICE_NAME: Un nombre de extremo de servicio compatible, como bigquery.
  • REGION: Una región compatible, como me-central2. Google Cloud

El siguiente ejemplo es un extremo regional completo para BigQuery:

bigquery.me-central2.rep.googleapis.com

Regiones y servicios compatibles

Los extremos regionales son compatibles con las siguientes regiones:

Nombre de la región Ubicación
me-central2 Dammam, Reino de Arabia Saudita (KSA)

Los extremos regionales son compatibles con los siguientes servicios:

Nombre del servicio Extremo regional
Artifact Registry artifactregistry.me-central2.rep.googleapis.com
apt.me-central2.rep.pkg.dev
docker.me-central2.rep.pkg.dev
go.me-central2.rep.pkg.dev
googet.me-central2.rep.pkg.dev
kfp.me-central2.rep.pkg.dev
maven.me-central2.rep.pkg.dev
npm.me-central2.rep.pkg.dev
python.me-central2.rep.pkg.dev
yum.me-central2.rep.pkg.dev
BigQuery bigquery.me-central2.rep.googleapis.com
bigquerydatatransfer.me-central2.rep.googleapis.com
bigquerymigration.me-central2.rep.googleapis.com
bigqueryreservation.me-central2.rep.googleapis.com
bigquerystorage.me-central2.rep.googleapis.com
Bigtable bigtable.me-central2.rep.googleapis.com
Cloud Key Management Service (Cloud KMS) cloudkms.me-central2.rep.googleapis.com
Cloud Logging logging.me-central2.rep.googleapis.com
Spanner spanner.me-central2.rep.googleapis.com
Cloud Storage storage.me-central2.rep.googleapis.com
Dataflow dataflow.me-central2.rep.googleapis.com
Servicio administrado para Apache Spark dataproc.me-central2.rep.googleapis.com
Pub/Sub pubsub.me-central2.rep.googleapis.com

Configura un cliente para acceder a extremos regionales desde la Internet pública

Para usar extremos regionales desde la Internet pública, primero debes configurar tu cliente (como la CLI de Google Cloud o una biblioteca cliente del SDK de Google Cloud) para que se conecte a un extremo regional específico.

Configura gcloud CLI

De forma predeterminada, gcloud CLI usa extremos de servicio globales, como bigquery.googleapis.com. Para usar un extremo de servicio regional, debes configurar gcloud CLI para que los use. Para ello, completa los siguientes pasos.

  1. Si aún no se habilitó un servicio compatible, habilítalo con el siguiente comando:

    gcloud services enable SERVICE_NAME

    Reemplaza SERVICE_NAME por el nombre de un servicio compatible que deseas usar. Por ejemplo:

    gcloud services enable cloudkms
  2. Para usar un extremo de servicio regional, debes configurar la gcloud CLI con el gcloud config set api_endpoint_overrides comando:

    gcloud config set api_endpoint_overrides/SERVICE_NAME REGIONAL_API_URL

    Reemplaza los siguientes valores por los tuyos:

    • SERVICE_NAME: El nombre del servicio compatible que deseas usar. Por ejemplo: cloudkms
    • REGIONAL_API_URL: La URL del extremo específico. Por ejemplo:

      https://SERVICE_NAME.REGION_NAME.rep.googleapis.com/SERVICE_NAME/API_VERSION

      Reemplaza los siguientes valores por los tuyos:

      • REGION_NAME: El nombre de la regiónrequerida. Google Cloud Por ejemplo: me-central2
      • API_VERSION: La versión de la API del servicio que deseas usar. Por ejemplo: v1. Nota: Es posible que algunos servicios no requieran este parámetro.

      El siguiente es un ejemplo de valor de REGIONAL_API_URL:

      https://cloudkms.me-central2.rep.googleapis.com/cloudkms/v1

    En conjunto, el siguiente es un ejemplo de comando gcloud config set api_endpoint_overrides para Cloud KMS:

    gcloud config set api_endpoint_overrides/cloudkms https://cloudkms.me-central2.rep.googleapis.com/cloudkms/v1

Ahora que se configuró gcloud CLI para usar un extremo de servicio regional, los comandos futuros lo usarán como predeterminado en lugar del extremo de servicio global.

Configura las bibliotecas cliente del SDK de Cloud

De forma predeterminada, las bibliotecas cliente del SDK de Google Cloud usan extremos de servicio globales, como pubsub.googleapis.com. Para usar un extremo de servicio regional, debes configurar las bibliotecas cliente del SDK de Google Cloud para que los usen.

Python

Establece el api_endpoint parámetro en la ClientOptions clase del paquete google-api-core:

from google.api_core.client_options import ClientOptions

options = ClientOptions(api_endpoint = "pubsub.me-central2.rep.googleapis.com")
client = pubsub_v1.PublisherClient(client_options=options)

// Alternatively
client = pubsub_v1.PublisherClient(client_options={"api_endpoint": "pubsub.me-central2.rep.googleapis.com")

Java

Usa el método newBuilder de la ImageAnnotatorSettings clase en el com.google.cloud.vision paquete:

ImageAnnotatorSettings settings = ImageAnnotatorSettings.newBuilder()
  .setEndpoint("pubsub.me-central2.rep.googleapis.com")
  .build();
ImageAnnotatorClient client = ImageAnnotatorClient.create(settings);

Go

Usa la función WithEndpoint en el ClientOptions paquete de el api paquete:

client, err := pubsub.NewClient(ctx, projID,
    option.WithEndpoint("pubsub.me-central2.rep.googleapis.com"), // Override endpoint

.NET

Establece la propiedad Endpoint en la clase ClientBuilder del cliente en el paquete Google.Cloud de la biblioteca que usas:

string region = "me-central2";
var client = new DatasetServiceClientBuilder
{
    Endpoint = $"pubsub.{region}.rep.googleapis.com"
}.Build();

Restringe el uso del extremo de API global

Para ayudar a aplicar de manera forzosa el uso de extremos regionales, usa la restricción de políticas de la organización constraints/gcp.restrictEndpointUsage y bloquea las solicitudes al extremo de API global. Para obtener más información, consulta Cómo restringir el uso de extremos.