Definições de entrada

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 secção descreve como usar as definições de entrada para restringir o acesso à rede à sua app do App Engine. Ao nível da rede, por predefinição, qualquer recurso na Internet pode aceder à sua app do App Engine no respetivo URL appspot ou num domínio personalizado configurado no App Engine. Por exemplo, o URL appspot.com pode ter o seguinte formato: SERVICE_ID.PROJECT_ID.REGION_ID.r.appspot.com.

Pode alterar esta definição predefinida especificando uma definição diferente para a entrada. Todos os caminhos de entrada, incluindo o URL appspot.com predefinido, estão sujeitos à sua definição de entrada. A entrada é definida ao nível do serviço.

Definições de entrada disponíveis

Estão disponíveis as seguintes definições:

Definição Descrição
Internos Mais restritiva. Permite pedidos de recursos anexados às redes VPC do projeto, como:
Os pedidos destas origens permanecem na rede Google, mesmo que acedam ao seu serviço no URL appspot.com. Os pedidos de outras origens, incluindo a Internet, não podem aceder ao seu serviço no URL appspot.com ou nos domínios personalizados. Não existe suporte para multi-tenancy, ou seja, vários domínios de confiança no mesmo projeto.
Interno e Cloud Load Balancing Permite pedidos dos seguintes recursos:
  • Recursos permitidos pela definição interna mais restritiva
  • Balanceador de carga de aplicações externo
Use a definição de balanceamento de carga interno e na nuvem para aceitar pedidos de um balanceador de carga de aplicações externo, mas não diretamente da Internet. Os pedidos para o URL appspot.com ignoram o Application Load Balancer externo, pelo que esta definição impede que os pedidos externos alcancem o URL appspot.com.
Tudo Menos restritivas. Permite todos os pedidos, incluindo pedidos diretamente da Internet para o URL appspot.com.

Aceder a serviços internos

Aplicam-se as seguintes considerações:

  • Para pedidos de uma VPC partilhada, o tráfego só é considerado interno se a app do App Engine for implementada no projeto anfitrião da VPC partilhada. Se a app do App Engine for implementada num projeto de serviço de VPC partilhada, apenas o tráfego de redes pertencentes ao próprio projeto da app é interno. Todo o outro tráfego, incluindo o tráfego de outras VPCs partilhadas, é externo.

  • Quando acede a serviços internos, chame-os como faria normalmente através dos respetivos URLs públicos, quer seja o URL appspot.com predefinido ou um domínio personalizado configurado no App Engine.

  • Para pedidos de instâncias de VMs do Compute Engine ou outros recursos em execução numa rede VPC no mesmo projeto, não é necessária nenhuma configuração adicional.

  • Os pedidos de recursos em redes VPC no mesmo projeto são classificados como internos, mesmo que o recurso de origem tenha um endereço IP público.

  • Os pedidos de recursos no local ligados à rede VPC através da VPN do Google Cloud são considerados internal.

  • Para pedidos de outros serviços do App Engine ou de funções do Cloud Run ou do Cloud Run no mesmo projeto, ligue o serviço ou a função a uma rede da VPC e encaminhe toda a saída através do conetor, conforme descrito no artigo Ligar a uma rede da VPC partilhada.

Veja as definições de carregamento

Consola

  1. Aceda à página App Engine Services.

    Aceda à página Serviços

  2. Localize a coluna Ingress. Para cada serviço, o valor nesta coluna mostra a definição de entrada como Tudo (predefinição), Interno + Equilíbrio de carga ou Interno.

gcloud

Para ver a definição de entrada de um serviço através da CLI gcloud:

gcloud app services describe SERVICE

Substitua SERVICE pelo nome do seu serviço.

Por exemplo, para ver as definições de entrada e outras informações para a execução do serviço predefinido:

gcloud app services describe default

Edite as definições de entrada

Consola

  1. Aceda à página App Engine Services.

    Aceda à página Serviços

  2. Selecione o serviço que quer editar.

  3. Clique em Editar definição de entrada.

  4. Selecione a definição de entrada pretendida no menu e clique em Guardar.

gcloud

Para atualizar a definição de entrada para um serviço através da CLI gcloud:

gcloud app services update SERVICE --ingress=INGRESS

Substituição:

  • SERVICE: o nome do seu serviço.
  • INGRESS: o controlo de entrada que quer aplicar. Uma das seguintes opções: all, internal-only ou internal-and-cloud-load-balancing.

Por exemplo:

  • Para atualizar o serviço predefinido de uma app do App Engine para aceitar tráfego apenas do Cloud Load Balancing e das redes VPC que estão no mesmo projeto:

    gcloud app services update default --ingress=internal-and-cloud-load-balancing
  • Para atualizar um serviço denominado "internal-requests" para aceitar tráfego apenas de redes VPC que estejam no mesmo projeto:

    gcloud app services update internal-requests --ingress=internal-only

Definições de saída

Se usar o Acesso a VPC sem servidor, pode especificar a definição de saída para o seu serviço do App Engine.

Por predefinição, apenas os pedidos a endereços IP internos e nomes DNS internos são encaminhados através de um conetor de acesso a VPC sem servidor. Pode especificar a definição de saída para o seu serviço no ficheiro app.yaml.

As definições de saída não são compatíveis com o serviço URL Fetch. A utilização da biblioteca urlfetch ignora as definições de saída e os pedidos não são encaminhados através de um conetor do Acesso a VPC sem servidor.

Para configurar o comportamento de saída do seu serviço do App Engine:

  1. Adicione o atributo egress_setting ao campo vpc_access_connector do ficheiro app.yaml do serviço:

    vpc_access_connector:
      name: projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME
      egress_setting: EGRESS_SETTING

    Substituição:

    • PROJECT_ID com o seu Google Cloud ID do projeto
    • REGION com a região em que o conector se encontra
    • CONNECTOR_NAME com o nome do conetor
    • EGRESS_SETTING com uma das seguintes opções:
      • private-ranges-only Predefinição. Apenas os pedidos aos intervalos de endereços IP RFC 1918 e RFC 6598 ou aos nomes DNS internos são encaminhados para a sua rede VPC. Todos os outros pedidos são encaminhados diretamente para a Internet.
      • all-traffic Todos os pedidos de saída do seu serviço são encaminhados para a sua rede VPC. Os pedidos ficam sujeitos às regras de firewall, DNS e encaminhamento da sua rede VPC. Tenha em atenção que o encaminhamento de todos os pedidos de saída para a sua rede VPC aumenta a quantidade de saída processada pelo conetor do Acesso a VPC sem servidor e pode incorrer em custos.
  2. Implemente o serviço:

    gcloud app deploy