Como estabelecer comunicação entre serviços

ID da região

O REGION_ID é um código abreviado que o Google atribui com base na região que você selecionou ao criar o aplicativo. O código não corresponde a um país ou estado, ainda que alguns IDs de região sejam semelhantes aos códigos de país e estado geralmente usados. Para apps criados após fevereiro de 2020, o REGION_ID.r está incluído nos URLs do App Engine. Para apps existentes criados antes dessa data, o ID da região é opcional no URL.

Saiba mais sobre IDs de região.

É possível usar vários métodos para se comunicar entre seus serviços do App Engine ou com outros serviços, incluindo serviços do Google Cloud e aplicativos externos.

A abordagem mais simples para a comunicação com o serviço do App Engine é enviar solicitações HTTP segmentadas, em que o URL inclui o nome ou o ID de um recurso. Por exemplo, inclua o ID de um serviço ou versão que quer segmentar, além do ID do projeto do Google Cloud correspondente:


https://VERSION-dot-SERVICE-dot-PROJECT_ID.REGION_ID.r.appspot.com

O comprimento combinado de VERSION-dot-SERVICE-dot-PROJECT_ID, em que VERSION é o nome da versão, SERVICE é o nome do serviço e PROJECT_ID é o ID do projeto, não pode ter mais de 63 caracteres nem começar ou terminar com um hífen. Se o comprimento combinado for maior que 63 caracteres, talvez você veja o erro DNS address could not be found. .

Saiba mais sobre solicitações no App Engine:

Os serviços do App Engine também podem se comunicar por meio do Pub/Sub, que fornece mensagens de muitos para muitos confiáveis e assíncronas entre processos, incluindo o App Engine. Esses processos podem ser instâncias individuais de um aplicativo, de serviços ou até de aplicativos externos.

Para compartilhar dados entre bancos de dados e o aplicativo do App Engine ou outro aplicativo externo, consulte Noções básicas sobre armazenamento de dados e arquivos.

Se você usa os serviços agrupados legados, também pode transmitir solicitações entre serviços e de serviços para endpoints externos usando a API URL Fetch.

Além disso, os serviços no ambiente padrão que residem no mesmo projeto do Google Cloud também podem usar uma das APIs do App Engine nas tarefas a seguir:

  • Compartilhamento de uma única memcache
  • Colaboração com a atribuição de trabalho entre serviços por meio de filas de tarefas

Comunicação particular

Comunicação entre serviços no mesmo projeto

É possível permitir que um serviço padrão do App Engine se comunique com outro serviço do App Engine no mesmo projeto sem precisar expor o serviço de destino à Internet pública.

Para permitir a comunicação entre serviços no mesmo projeto:

  1. Configure controles de entrada ajustando as configurações de entrada do serviço de destino para permitir apenas tráfego "interno".

    A configuração "interna" permite solicitações apenas das redes VPC do projeto. Isso inclui recursos do App Engine de um aplicativo cliente na mesma rede quando o tráfego de saída é roteado por um conector. Todo os outros tráfegos da Internet ou de outros projetos do Google Cloud, incluindo outros serviços do App Engine, são bloqueados.

  2. Encaminhe o tráfego por um conector de acesso VPC sem servidor:

    1. Para cada versão do App Engine que envia tráfego particular para outros endpoints de apps, anexe a versão a um conector de acesso VPC sem servidor pertencente a uma das redes próprias do projeto do Google Cloud, não a uma rede VPC compartilhada.

    2. Verifique se o Acesso privado do Google está ativado na sub-rede usada pelo conector de acesso VPC sem servidor.

    3. Defina uma das seguintes configurações:

      • Solicitações do cliente para usar o intervalo de IP private.googleapis.com adicionando uma entrada de DNS para o nome do host de destino. Siga a Configuração de DNS para adicionar o nome do host de DNS, mas lembre-se de configurar a zona particular com appspot.com no lugar de googleapis.com. Garanta também que o tráfego seja direcionado para o endereço appspot.com do app de destino, não um domínio personalizado. Seu aplicativo só pode ser acessado no intervalo de IP private.googleapis.com usando este domínio appspot.com.

      • O aplicativo cliente para enviar all-traffic via conector de acesso VPC sem servidor, em vez de configurar as solicitações para usar o intervalo de IP private.googleapis.com.

Comunicação entre serviços em diferentes projetos

É possível ter acesso particular entre projetos do Google Cloud quando os aplicativos em execução nos projetos pertencem a uma rede VPC compartilhada configurada para invocar um aplicativo em execução no projeto host da rede VPC compartilhada.

Para usar esse padrão, siga as etapas anteriores para a comunicação entre serviços no mesmo projeto. No ambiente padrão, anexe cada versão do cliente a um conector de acesso VPC sem servidor na rede VPC compartilhada.

No App Engine, não são possíveis outros métodos de comunicação entre projetos usando acesso interno.

Caminhos de URL reservados

Não é possível usar os caminhos de URL a seguir:

  • Caminhos que terminam com /eventlog
  • Caminhos que começam com /_ah/
  • Alguns caminhos que terminam com z