Acessar APIs regionais do Google por endpoints públicos

É possível acessar endpoints regionais e multirregionais publicamente pela Internet ou de forma privada na sua nuvem privada virtual. Neste documento, explicamos como acessar os endpoints publicamente.

Quando você acessa endpoints regionais da Internet pública, o tráfego é roteado pela Google Cloud rede do nível Standard. A conexão, incluindo término de TLS, é processada na região de destino.

Configurar o acesso à Internet pública para as APIs

Para configurar o acesso público à Internet aos endpoints regionais da API, siga estas etapas.

Papéis

Para receber as permissões necessárias para criar um endpoint regional, peça ao administrador para conceder a você os seguintes papéis do IAM na rede VPC:

Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Também é possível conseguir as permissões necessárias usando papéis personalizados ou outros papéis predefinidos.

Antes de começar

  1. Instale a CLI do Google Cloud. Após a instalação, inicialize a Google Cloud CLI executando o seguinte comando:

    $ gcloud init

    Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.

  2. Ative as APIs Compute Engine, Network Connectivity Center e Cloud DNS.

    Funções necessárias para ativar APIs

    Para ativar as APIs, é necessário ter o papel do IAM de administrador de uso do serviço (roles/serviceusage.serviceUsageAdmin), que contém a permissão serviceusage.services.enable. Saiba como conceder papéis.

    Ativar as APIs

  3. Além disso, ative a API do serviço de destino que você quer acessar pelo endpoint. Por exemplo, se você quiser acessar spanner.me-central2.rep.googleapis.com, ative a API Cloud Spanner.

  4. Verifique se as regras de firewall de saída permitem o tráfego para o endpoint. A configuração padrão de firewall das redes VPC permite esse tráfego porque contém uma regra de saída de permissão implícita. Você não deve criar uma regra de saída de prioridade mais alta que bloqueie o tráfego.

Identificar o endpoint

Determine o serviço e a região ou multirregião específica necessária para sua carga de trabalho.

  • Os endpoints regionais têm o seguinte formato: SERVICE.REGION.rep.googleapis.com

  • Os endpoints multirregionais têm o seguinte formato: SERVICE.MULTIREGION.rep.googleapis.com

Modificar a configuração de DNS

Se o ambiente substituir o DNS público por googleapis.com usando uma zona de DNS particular, o que é comum em configurações híbridas, siga estas etapas:

  • Atualize sua configuração de DNS para excluir rep.googleapis.com. Para mais informações, consulte Adicionar, atualizar e excluir registros.

  • Modifique a configuração da zona de DNS para excluir o subdomínio rep.googleapis.com. Encaminhe essas consultas para resolvedores de DNS públicos. Para mais informações, consulte Criar, modificar e excluir zonas.

Configurar a Google Cloud CLI

Para substituir o endpoint de API padrão de serviços específicos, use a Google Cloud CLI. O exemplo a seguir usa o comando gcloud config set para definir uma substituição do Cloud Storage em us-central1 e uma substituição do Compute Engine em 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/

Depois de definir a substituição, os comandos da CLI gcloud para esse serviço usarão o endpoint regional. Para reverter ao uso do endpoint global padrão, use o comando gcloud config unset:

gcloud config unset api_endpoint_overrides/SERVICE

Atualizar os SDKs de cliente

A maioria das bibliotecas de cliente Google Cloud permite especificar um endpoint personalizado durante a inicialização do cliente.

Python

Use client_options com 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

Substitua:

  • SERVICE: o nome do serviço;
  • REGION: a região do endpoint
  • PROJECT_ID: o ID do seu projeto Google Cloud

Go

Use option.WithEndpoint durante a criação do cliente.

client, err := SERVICE.NewClient(ctx, projID, 
option.WithEndpoint("https://SERVICE-my-endpoint.REGION.rep.googleapis.com"), // Override endpoint

Substitua:

  • SERVICE: o nome do serviço;
  • REGION: a região do endpoint

.NET

Configure Endpoint no builder do cliente.

Java

Use setEndpoint no criador de configurações de serviço.

O exemplo a seguir usa Java para se conectar ao endpoint da API Cloud Vision.

ImageAnnotatorSettings settings = ImageAnnotatorSettings.newBuilder()
.setEndpoint("https://vision.REGION.rep.googleapis.com")
.build();
ImageAnnotatorClient client = ImageAnnotatorClient.create(settings);

Documentação de referência

A seguir