Nell'ambiente flessibile di App Engine, puoi specificare una rete in cui eseguire il deployment delle istanze del servizio. Questa pagina mostra come configurare il tuo progetto per l'uso dell'ambiente flessibile di App Engine su una rete VPC condiviso.
Per ulteriori informazioni sulla configurazione di una rete VPC condivisa, consulta Provisioning di VPC condiviso.
Configurazione dell'ambiente flessibile di App Engine con VPC condiviso
Il deployment delle istanze nell'ambiente flessibile di App Engine su una rete VPC condivisa prevede tre passaggi:
Se utilizzi l'interfaccia a riga di comando di Google Cloud, esegui l'aggiornamento all'ultima versione prima di seguire questa guida eseguendo il comando:
gcloud components update
Autorizzazione del traffico verso la rete VPC condivisa
Un amministratore VPC condiviso deve creare una regola firewall nel progetto host VPC condiviso per consentire il traffico verso l'ambiente flessibile di App Engine sulla rete VPC condivisa. La regola firewall consente la pubblicazione e il controllo di integrità del traffico verso le istanze dell'ambiente flessibile.
La regola firewall deve avere le seguenti proprietà:
- Rete: il nome della rete VPC condivisa
- Direzione del traffico: Ingress
- Azione in caso di corrispondenza: consenti
- Target: tag di destinazione specificati
- Tag di destinazione:
aef-instance
- Filtro di origine: intervalli IP
- Intervalli IP di origine:
35.191.0.0/16
,130.211.0.0/22
- Protocolli e porte: protocolli e porte specificati
- tcp: 8443, 10402,
Un amministratore VPC condiviso può creare la regola firewall utilizzando Google Cloud Console o l'interfaccia a riga di comando di Google Cloud:
Console
Per creare la regola firewall utilizzando Cloud Console:
Vai alla pagina di creazione della regola firewall.
Nei campi Nome e Descrizione, specifica un nome e una descrizione per la regola firewall.
Inserisci le proprietà necessarie come specificato sopra.
Fai clic su Crea.
gcloud
Per creare la regola firewall utilizzando l'interfaccia a riga di comando di Google Cloud, esegui il comando seguente:
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'
dove:
NETWORK_NAME
è il nome della rete VPC condivisa.HOST_PROJECT_ID
è l'ID progetto Cloud del progetto host VPC condiviso.
Configurazione delle autorizzazioni
Un amministratore VPC condiviso deve concedere i seguenti due account di servizio al ruolo Utente rete Compute per consentire a un progetto di servizio di eseguire il deployment delle istanze nell'ambiente flessibile di App Engine alla rete:
- Agente di servizio API di Google
(
PROJECT_NUM@cloudservices.gserviceaccount.com
) - Agente di servizio dell'ambiente flessibile di App Engine
(
service-PROJECT_NUM@gae-api-prod.google.com.iam.gserviceaccount.com
)
Console
Per configurare le autorizzazioni utilizzando Cloud Console:
Vai alla pagina Impostazioni IAM per il progetto di servizio e prendi nota del numero di progetto.
Vai alla pagina IAM del progetto host.
Fai clic su Aggiungi.
Nel campo Nuovi membri, inserisci i seguenti indirizzi email separati da una virgola. Sostituisci
PROJECT_NUM
con il numero di progetto ottenuto nel passaggio 1.PROJECT_NUM@cloudservices.gserviceaccount.com
service-PROJECT_NUM@gae-api-prod.google.com.iam.gserviceaccount.com
Nel menu a discesa Seleziona un ruolo, seleziona Compute Engine > Utente rete Compute.
Fai clic su Salva.
gcloud
Recupera il numero di progetto del progetto di servizio in cui viene eseguito il deployment dell'app App Engine. Esegui il comando seguente, sostituendo
SERVICE_PROJECT_ID
con l'ID progetto del progetto di servizio:export SERVICE_PROJECT_NUM=$(gcloud projects describe SERVICE_PROJECT_ID --format="value(projectNumber)")
Concedi all'agente di servizio API di Google del progetto di servizio il ruolo
compute.networkUser
nel progetto host:gcloud projects add-iam-policy-binding HOST_PROJECT_ID \ --member=serviceAccount:$SERVICE_PROJECT_NUM@cloudservices.gserviceaccount.com \ --role=roles/compute.networkUser
dove
HOST_PROJECT_ID
è l'ID del progetto Cloud del progetto host VPC condiviso.Concedi al ruolo di servizio dell'ambiente flessibile di App Engine il progetto del servizio
compute.networkUser
nel progetto host: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
Configurazione e deployment del servizio
Dopo aver configurato la regola del firewall e le autorizzazioni corrette, puoi eseguire il deployment di un nuovo servizio o di un servizio ambiente flessibile di App Engine esistente sulla rete VPC condivisa.
Nel file
app.yaml
, utilizza il campo Impostazioni di retename
per specificare il nome completo della rete VPC condivisa:network: name: projects/HOST_PROJECT_ID/global/networks/NETWORK_NAME
dove
HOST_PROJECT_ID
è l'ID progetto Cloud del progetto host VPC condiviso.NETWORK_NAME
è il nome della rete VPC condivisa.
Per configurare il servizio in modo che faccia parte di una subnet denominata
SUBNETWORK_NAME
, imposta anche il camposubnetwork_name
:network: name: projects/HOST_PROJECT_ID/global/networks/NETWORK_NAME subnetwork_name: SUBNETWORK_NAME
Esegui il deployment del servizio:
gcloud app deploy
Verifica della configurazione
Per verificare che il servizio dell'ambiente flessibile di App Engine sia in esecuzione sulla rete VPC condivisa, consulta la configurazione della versione nella pagina Versioni di App Engine in Cloud Console:
Vai alla pagina Versioni di App Engine.
Nella colonna Config a destra, fai clic su View per la versione desiderata.
Verifica che il nome della rete nella configurazione corrisponda al nome della rete VPC condivisa.