ID da região
O REGION_ID
é um código abreviado que a Google atribui com base na região que seleciona quando cria a sua app. O código não corresponde a um país ou uma província, embora alguns IDs de regiões possam parecer semelhantes aos códigos de países e províncias usados frequentemente. Para apps criadas após
fevereiro de 2020, REGION_ID.r
está incluído nos
URLs do App Engine. Para apps existentes criadas antes desta data, o
ID da região é opcional no URL.
Saiba mais acerca dos IDs de regiões.
Esta página descreve como os pedidos HTTP dos utilizadores chegam à versão adequada de um serviço. As solicitações podem ser encaminhadas das seguintes formas:
- Encaminhamento com URLs
- Encaminhamento com um ficheiro de expedição
- Encaminhamento com o Cloud Load Balancing
Estas opções aplicam-se apenas a apps implementadas. Quando está a testar localmente, o comportamento de encaminhamento depende do tempo de execução específico e do ambiente de desenvolvimento que está a usar.
Tenha em atenção que, se usar os serviços agrupados antigos para testar a sua app através do servidor de desenvolvimento local, as funcionalidades de encaminhamento e envio disponíveis são ligeiramente diferentes. Para criar URLs programaticamente que funcionem com servidores de produção e desenvolvimento, use a função
Encaminhamento com URLs
Assim que a sua app estiver a ser executada no App Engine, pode usar o seguinte URL para enviar pedidos HTTP para a app:
https://PROJECT_ID.REGION_ID.r.appspot.com
onde
PROJECT_ID
é o ID do Google Cloud projeto
que contém a app.
Este URL envia pedidos para o serviço predefinido da sua app na versão que configurou para receber tráfego.
URLs para serviços e versões
Se criar mais do que um serviço na sua app, cada serviço tem o seu próprio URL. Cada versão de um serviço também tem o seu próprio URL, pelo que pode implementar e testar uma nova versão antes de configurar essa versão para receber tráfego.
Os URLs de serviços e versões específicos têm o seguinte formato:
VERSION-dot-SERVICE-dot-PROJECT_ID.REGION_ID.r.appspot.com
Pode omitir VERSION-dot-
se não precisar de segmentar uma versão específica.
Para obter os IDs dos serviços e das versões da sua app, pode usar qualquer uma das seguintes ferramentas:
Consola
Na Google Cloud consola, pode ver as páginas correspondentes de Instâncias, Serviços> e Versões.
gcloud
Execute o comando
gcloud app instances list
para apresentar os IDs dos recursos num Google Cloud projeto específico.
API
Para obter IDs de recursos de forma programática, consulte os métodos list
na
API Admin.
Exemplos de URLs
Seguem-se alguns exemplos de URLs do App Engine, que mostram o domínio appspot.com
que o App Engine atribui à sua app e um domínio personalizado, que pode configurar para a sua app.
- Envia o pedido para uma instância disponível do serviço
default
: https://PROJECT_ID.REGION_ID.r.appspot.com
https://CUSTOM_DOMAIN
Os pedidos são recebidos por qualquer versão configurada para tráfego no serviço
default
.- Envia o pedido para uma instância disponível do serviço
- Envia um pedido a uma instância disponível de um serviço específico:
https://SERVICE_ID-dot-PROJECT_ID.REGION_ID.r.appspot.com
https://SERVICE_ID.CUSTOM_DOMAIN
Os pedidos são recebidos por qualquer versão configurada para tráfego no serviço segmentado. Se o serviço que está a segmentar não existir, o pedido é encaminhado de forma flexível.
- Envia um pedido a uma instância disponível de uma versão específica no
default
serviço:https://VERSION_ID-dot-default-dot-PROJECT_ID.REGION_ID.r.appspot.com
https://VERSION_ID.CUSTOM_DOMAIN
Quando um serviço não é segmentado, os pedidos são enviados para o serviço
default
.
Encaminhamento suave
Se um pedido corresponder à parte PROJECT_ID.REGION_ID.r.appspot.com
do nome de anfitrião, mas incluir um nome de serviço, versão ou instância que não exista, o pedido é encaminhado para o serviço default
. O encaminhamento flexível não se aplica a domínios personalizados. Os pedidos para estes devolvem um código de estado HTTP 404
se o nome do anfitrião for inválido.
Encaminhamento segmentado
Os seguintes padrões de URL atingem o respetivo destino, se existirem. Os pedidos que não passam pelo Cloud Load Balancing nunca são intercetados nem reencaminhados pelos padrões que definiu no ficheiro de expedição:
Envia o pedido para uma instância disponível de um serviço e uma versão específicos:
https://VERSION-dot-SERVICE-dot-PROJECT_ID.REGION_ID.r.appspot.com
https://VERSION_ID.SERVICE_ID.PROJECT_ID.CUSTOM_DOMAINSe estiver a usar serviços com escalabilidade manual, pode segmentar e enviar um pedido a uma instância incluindo o ID da instância. O ID da instância é um número inteiro no intervalo de
0
até ao número total de instâncias em execução e pode ser especificado da seguinte forma:Envia um pedido a um serviço e uma versão específicos numa instância específica:
https://INSTANCE_ID-dot-VERSION_ID-dot-SERVICE_ID-dot-PROJECT_ID.REGION_ID.r.appspot.com https://INSTANCE_ID.VERSION_ID.SERVICE_ID.CUSTOM_DOMAIN
Encaminhamento com um ficheiro de expedição
Pode criar um ficheiro de expedição para substituir as regras de encaminhamento baseadas em URLs do App Engine e definir as suas próprias regras de encaminhamento personalizadas. Com um ficheiro de expedição, pode enviar pedidos recebidos para um serviço específico com base no caminho ou no nome do anfitrião no URL do pedido.
Criar um ficheiro de expedição
Para criar um ficheiro de envio, faça o seguinte:
Crie um ficheiro denominado
dispatch.yaml
no diretório raiz do seu projeto ou no diretório raiz do serviçodefault
.Defina regras de encaminhamento no ficheiro, conforme descrito na
dispatch.yaml
referência.
Tenha em atenção o seguinte acerca das regras de encaminhamento:
- Pode definir até 20 regras de encaminhamento. Cada regra tem de conter os elementos
url
eservice
. - As regras têm de usar padrões de URL HTTP que incluam a notação "
.
" para separar subdomínios. Os URLs definidos com a notação "-dot-
" HTTPS não são suportados. - As regras também se aplicam aos URLs que definir no seu ficheiro
cron.yaml
.
Por exemplo, pode criar um ficheiro de expedição para encaminhar pedidos de dispositivos móveis, como
https://simple-sample.uc.r.appspot.com/mobile/
, para um front-end para dispositivos móveis e encaminhar pedidos de trabalhadores, como https://simple-sample.uc.r.appspot.com/work/
, para um back-end
estático:
dispatch:
# Send all mobile traffic to the mobile frontend.
- url: "*/mobile/*"
service: mobile-frontend
# Send all work to the one static backend.
- url: "*/work/*"
service: static-backend
Implementar o ficheiro de envio
Para implementar o ficheiro de expedição através do gcloud, execute o seguinte comando:
gcloud app deploy dispatch.yaml
Encaminhamento com o Cloud Load Balancing
O Cloud Load Balancing é um produto separado que permite configurações de rede avançadas para todas as suas aplicações em execução no Google Cloud.
Quando o balanceamento de carga de HTTP(S) está ativado para apps sem servidor, pode:
Configure a sua app sem servidor para ser servida a partir de um endereço IP IPv4 ou IPv6 dedicado que não seja partilhado com outros serviços.
Reutilize os mesmos certificados SSL e chaves privadas que usa para o Compute Engine, o Google Kubernetes Engine e o Cloud Storage. Isto elimina a necessidade de gerir certificados separados para apps sem servidor.
Quando encaminha pedidos mapeados para um NEG sem servidor do App Engine, o equilibrador de carga consulta apenas as regras de expedição se o NEG sem servidor não especificar um serviço ou uma versão. O balanceador de carga ignora as regras de envio quando o serviço ou a versão está configurado no NEG sem servidor.
Tenha em conta o seguinte:
- Recomendamos que use controlos de entrada para que a sua app apenas receba pedidos enviados a partir do equilibrador de carga (e da VPC, se a usar). Caso contrário, os utilizadores podem usar o URL do App Engine da sua app para contornar o balanceador de carga, as políticas de segurança do Cloud Armor, os certificados SSL e as chaves privadas que são transmitidas através do balanceador de carga.
Compreenda o ID da região nos URLs
O REGION_ID
é um código abreviado que a Google atribui com base na região que seleciona quando cria a sua app. O código não corresponde a um país ou uma província, embora alguns IDs de regiões possam parecer semelhantes aos códigos de países e províncias usados frequentemente. Para apps criadas após
fevereiro de 2020, REGION_ID.r
está incluído nos
URLs do App Engine. Para apps existentes criadas antes desta data, o
ID da região é opcional no URL.
Pode usar as seguintes ferramentas para ver o ID da região da sua app:
Consola
Na Google Cloud consola, pode ver os URLs das instâncias, dos serviços e das versões da sua app.
Todos estes URLs incluem o ID da região.
gcloud
Quando implementa uma app ou um serviço, o comando gcloud app deploy
apresenta o URL após a implementação ser bem-sucedida. Este URL inclui o ID da região.
Para ver o URL de um serviço que já está implementado:
Introduza o comando
gcloud app versions list
para apresentar as versões de um serviço específico. Por exemplo, para listar as versões do serviço predefinido, introduzagcloud app versions list --service=default
.Introduza o comando
gcloud app versions describe
. O resultado desse comando inclui o URL da versão com o ID da região da app. Por exemplo, para descrever a versão 20191023t101741 do serviço predefinido, introduzagcloud app versions describe 20191023t101741 --service=default
O nome do domínio está incluído nos dados do pedido
O nome do domínio usado para o pedido está incluído nos dados do pedido que são
transmitidos à sua app. Por conseguinte, pode usar os dados do pedido para controlar a forma como a sua
app responde com base no nome do domínio no pedido. Por exemplo, se quiser
fazer o redirecionamento para um domínio oficial, pode programar a sua app para verificar o cabeçalho do pedido Host
e, em seguida, responder em conformidade com base no nome do domínio.