Cómo acceder a los extremos de las APIs regionales

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

Los extremos regionales proporcionan capacidades de residencia de datos en tránsito, ya que enrutan y entregan 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 de 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 cambio, se resuelven en direcciones IP que solo se anuncian en los puntos de intercambio de tráfico más cercanos a la región seleccionada.

Por ejemplo, un ingeniero de datos que trabaja en Arabia Saudita 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 de TLS de su cliente se finalizará en me-central2.

En este caso, la VIP pública correspondiente al extremo de servicio regional se originará a partir de un prefijo de 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 Arabia Saudita, 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: Es el nombre de un extremo de servicio compatible, como bigquery.
  • REGION: Es una región de Google Cloud compatible, como me-central2.

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
Dataproc dataproc.me-central2.rep.googleapis.com
Pub/Sub pubsub.me-central2.rep.googleapis.com

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

Para usar extremos regionales desde Internet pública, primero debes configurar tu cliente (como Google Cloud CLI 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 quieras usar. Por ejemplo:

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

    gcloud config set api_endpoint_overrides/SERVICE_NAME REGIONAL_API_URL

    Reemplaza los siguientes valores por los tuyos:

    • SERVICE_NAME: Es el nombre del servicio compatible que deseas usar. Por ejemplo: cloudkms.
    • REGIONAL_API_URL: Es 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: Es el nombre de la región Google Cloud requerida. Por ejemplo: me-central2
      • API_VERSION: Es 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.

      A continuación, se muestra un ejemplo de valor de REGIONAL_API_URL:

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

    En conjunto, el siguiente es un ejemplo del 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 gcloud CLI se configuró para usar un extremo de servicio regional, los comandos futuros lo usarán como valor predeterminado en lugar del extremo de servicio global.

Configura las bibliotecas cliente del SDK de Google 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 lo usen.

Python

Establece el parámetro api_endpoint en la clase ClientOptions 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 clase ImageAnnotatorSettings en el paquete com.google.cloud.vision:

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 paquete ClientOptions del paquete api:

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 estás usando:

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.