No ambiente flexível do App Engine, pode especificar uma rede na qual implementar as instâncias do seu serviço. Esta página mostra como configurar o seu projeto para usar o ambiente flexível do App Engine numa rede de VPC partilhada.
Consulte o artigo Aprovisionar VPC partilhada para mais informações sobre a configuração de uma rede VPC partilhada.
Configurar o ambiente flexível do App Engine com a VPC partilhada
A implementação de instâncias do ambiente flexível do App Engine numa rede de VPC partilhada envolve três passos:
Conceda as autorizações adequadas às contas de serviço no projeto de serviço de VPC partilhada
Configure os seus serviços do App Engine para usar a rede da VPC partilhada
Se usar a CLI do Google Cloud, atualize para a versão mais recente antes de seguir este guia executando o comando:
gcloud components update
Permitir tráfego para a rede VPC partilhada
Um administrador da VPC partilhada tem de criar uma regra de firewall no projeto anfitrião da VPC partilhada para permitir o tráfego para o ambiente flexível do App Engine na rede VPC partilhada. A regra de firewall permite a publicação e o tráfego de verificação de estado para instâncias do ambiente flexível.
A regra de firewall tem de ter as seguintes propriedades:
- Rede: o nome da rede VPC partilhada
- Sentido do tráfego: entrada
- Ação na correspondência: permitir
- Objetivos: etiquetas de objetivo especificadas
- Etiquetas de segmentação:
aef-instance
- Filtro de origem: intervalos de IP
- Intervalos de IPs de origem:
35.191.0.0/16
,130.211.0.0/22
- Protocolos e portas: protocolos e portas especificados
- tcp: 8443, 10402
Um administrador da VPC partilhada pode criar a regra de firewall através da Google Cloud consola ou da Google Cloud CLI:
Consola
Para criar a regra de firewall através da Google Cloud consola:
Aceda à página de criação de regras de firewall.
Nos campos Nome e Descrição, indique um nome e uma descrição para a regra de firewall.
Preencha as propriedades necessárias, conforme especificado acima.
Clique em Criar.
gcloud
Para criar a regra de firewall com a Google Cloud CLI, execute o seguinte comando:
gcloud compute firewall-rules create NETWORK_NAME-flex-firewall \ --project HOST_PROJECT_ID \ --network NETWORK_NAME \ --allow tcp:10402,tcp:8443 \ --target-tags aef-instance \ --source-ranges 35.191.0.0/16,130.211.0.0/22 \ --description 'Allows traffic to App Engine flexible environment'
where:
NETWORK_NAME
é o nome da rede VPC partilhada.HOST_PROJECT_ID
é o Google Cloud ID do projeto do projeto anfitrião da VPC partilhada.
Configurar autorizações
Um administrador da VPC partilhada tem de conceder às seguintes duas contas de serviço a função de utilizador da rede de computação para permitir que um projeto de serviço implemente instâncias no ambiente flexível do App Engine na rede:
- Agente do serviço das APIs Google
(
PROJECT_NUM@cloudservices.gserviceaccount.com
) - Agente do serviço do ambiente flexível do App Engine
(
service-PROJECT_NUM@gae-api-prod.google.com.iam.gserviceaccount.com
)
Consola
Para configurar autorizações através da Google Cloud consola:
Aceda à página de definições do IAM para o projeto de serviço e tome nota do número do projeto.
Aceda à página do IAM para o projeto anfitrião.
Clique em Adicionar.
No campo Novos membros, introduza os seguintes endereços de email separados por uma vírgula. Substitua
PROJECT_NUM
pelo número do projeto obtido no passo 1.PROJECT_NUM@cloudservices.gserviceaccount.com
service-PROJECT_NUM@gae-api-prod.google.com.iam.gserviceaccount.com
No menu pendente Selecionar uma função, selecione Compute Engine > Utilizador da rede de computação.
Clique em Guardar.
gcloud
Obtenha o número do projeto do projeto de serviço onde a app do App Engine está implementada. Execute o seguinte comando, substituindo
SERVICE_PROJECT_ID
pelo ID do projeto do projeto de serviço:export SERVICE_PROJECT_NUM=$(gcloud projects describe SERVICE_PROJECT_ID --format="value(projectNumber)")
Conceda ao agente do serviço das APIs Google do projeto de serviço a função
compute.networkUser
no projeto anfitrião:gcloud projects add-iam-policy-binding HOST_PROJECT_ID \ --member=serviceAccount:$SERVICE_PROJECT_NUM@cloudservices.gserviceaccount.com \ --role=roles/compute.networkUser
onde
HOST_PROJECT_ID
é o Google Cloud ID do projeto anfitrião da VPC partilhada.Conceda ao agente de serviço do ambiente flexível do App Engine do projeto de serviço a função
compute.networkUser
no projeto anfitrião:gcloud projects add-iam-policy-binding HOST_PROJECT_ID \ --member=serviceAccount:service-$SERVICE_PROJECT_NUM@gae-api-prod.google.com.iam.gserviceaccount.com \ --role=roles/compute.networkUser
Configurar e implementar o seu serviço
Depois de configurar a regra de firewall e as autorizações adequadas, pode implementar um novo serviço ou um serviço do ambiente flexível do App Engine existente na rede VPC partilhada.
No ficheiro
app.yaml
, use o campo network settingsname
para especificar o nome totalmente qualificado da rede VPC partilhada:network: name: projects/HOST_PROJECT_ID/global/networks/NETWORK_NAME
onde
HOST_PROJECT_ID
é o Google Cloud ID do projeto do projeto anfitrião da VPC partilhada.NETWORK_NAME
é o nome da rede de VPC partilhada.
Para configurar o serviço de modo a fazer parte de uma sub-rede denominada
SUBNETWORK_NAME
, defina também o camposubnetwork_name
:network: name: projects/HOST_PROJECT_ID/global/networks/NETWORK_NAME subnetwork_name: SUBNETWORK_NAME
Implemente o serviço:
gcloud app deploy
Validar a configuração
Para verificar se o serviço do ambiente flexível do App Engine está a ser executado na rede VPC partilhada, veja a configuração da versão na página de versões do App Engine naGoogle Cloud consola:
Aceda à página Versões do App Engine.
Na coluna Configuração à direita, clique em Ver para a versão pretendida.
Verifique se o nome da rede na configuração é o nome da rede de VPC partilhada.