Como acessar endpoints de API regionais

Nesta página, explicamos como usar endpoints regionais de API (endpoints regionais) em Google Cloud, que estão disponíveis para a região me-central2 (KSA).

Os endpoints regionais oferecem recursos de residência de dados em trânsito ao rotear e veicular tráfego na mesma Google Cloud região do cliente. Quando um cliente chama um serviço usando um endpoint regional, a sessão TLS do cliente termina na região indicada no nome do endpoint. Como resultado, os endpoints regionais só devem ser usados para cargas de trabalho que não têm dependências fora de uma única região ou jurisdição.

É possível se conectar pela Internet a endpoints regionais públicos. Para o tráfego de entrada da Internet, esses endpoints usam o roteamento de melhor esforço para manter o tráfego em trânsito local na região (ou jurisdição), porque não usam o Google Front End (GFE) global. Em vez disso, eles são resolvidos para endereços IP anunciados apenas nos pontos de peering mais próximos da região selecionada.

Por exemplo, um engenheiro de dados que trabalha na Arábia Saudita pode configurar o cliente para usar o BigQuery na região me-central2 (Dammam) usando o endpoint regional do serviço bigquery.me-central2.rep.googleapis.com. O tráfego é roteado usando o nível Standard, e a sessão TLS do cliente será encerrada em me-central2.

Nesse cenário, o VIP público correspondente ao endpoint de serviço regional vai se originar de um prefixo de IP anunciado pelo Google nos pontos de peering da região. Assim, se o usuário estiver conectado a um ISP local na Arábia Saudita, o tráfego poderá ser roteado dentro da jurisdição dele.

Formato do endpoint regional

Os endpoints regionais usam o seguinte formato:

SERVICE_NAME.REGION.rep.googleapis.com

Os valores do marcador são definidos da seguinte maneira:

  • SERVICE_NAME: um nome de endpoint de serviço compatível, como bigquery.
  • REGION: uma região Google Cloud compatível, como me-central2.

O exemplo a seguir é um endpoint regional completo para o BigQuery:

bigquery.me-central2.rep.googleapis.com

Regiões e serviços com suporte

Os endpoints regionais são compatíveis com as seguintes regiões:

Nome da região Local
me-central2 Damã, Reino da Arábia Saudita (KSA)

Os endpoints regionais são compatíveis com os seguintes serviços:

Nome do serviço Endpoint 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

Como configurar um cliente para acessar endpoints regionais da Internet pública

Para usar endpoints regionais da Internet pública, primeiro configure seu cliente (como a Google Cloud CLI ou uma biblioteca de cliente do SDK Google Cloud) para se conectar a um endpoint regional específico.

Configurar a CLI gcloud

Por padrão, a CLI gcloud usa endpoints de serviço globais, como bigquery.googleapis.com. Para usar um endpoint de serviço regional, configure a CLI gcloud para usá-los seguindo estas etapas:

  1. Se um serviço compatível ainda não tiver sido ativado, faça isso usando o seguinte comando:

    gcloud services enable SERVICE_NAME

    Substitua SERVICE_NAME pelo nome de um serviço compatível que você quer usar. Exemplo:

    gcloud services enable cloudkms
  2. Para usar um endpoint de serviço regional, configure a CLI gcloud usando o comando gcloud config set api_endpoint_overrides:

    gcloud config set api_endpoint_overrides/SERVICE_NAME REGIONAL_API_URL

    Substitua os seguintes valores pelos seus:

    • SERVICE_NAME: o nome do serviço compatível que você quer usar. Por exemplo: cloudkms
    • REGIONAL_API_URL: o URL do endpoint específico. Exemplo:

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

      Substitua os seguintes valores pelos seus:

      • REGION_NAME: o nome da Google Cloud região obrigatória. Por exemplo: me-central2
      • API_VERSION: a versão da API do serviço que você quer usar. Por exemplo, v1. Observação: alguns serviços podem não exigir esse parâmetro.

      Confira um exemplo de valor REGIONAL_API_URL:

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

    Confira um exemplo de comando gcloud config set api_endpoint_overrides para o Cloud KMS:

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

Agora que a CLI gcloud foi configurada para usar um endpoint de serviço regional, os comandos futuros vão usá-lo como padrão em vez do endpoint de serviço global.

Configurar bibliotecas de cliente do SDK Google Cloud

Por padrão, as bibliotecas de cliente do SDK Google Cloud usam endpoints de serviço globais, como pubsub.googleapis.com. Para usar um endpoint de serviço regional, configure as bibliotecas de cliente do SDK Google Cloud.

Python

Defina o parâmetro api_endpoint na classe ClientOptions do pacote 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

Use o método newBuilder da classe ImageAnnotatorSettings no pacote com.google.cloud.vision:

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

Go

Use a função WithEndpoint no pacote ClientOptions do pacote api:

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

.NET

Defina a propriedade Endpoint na classe ClientBuilder do cliente no pacote Google.Cloud da biblioteca que você está usando:

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

Restringir o uso de endpoints de API globais

Para ajudar na aplicação do uso de endpoints regionais, utilize a restrição de política da organização constraints/gcp.restrictEndpointUsage para bloquear solicitações ao endpoint da API global. Para mais informações, consulte Restringir o uso de endpoints.