ID regione
REGION_ID
è un codice abbreviato assegnato da Google
in base alla regione selezionata al momento della creazione dell'app. Il codice non
corrispondono a un paese o a una provincia, anche se potrebbero essere visualizzati alcuni ID regione
in modo simile ai codici paese e provincia di uso comune. Per le app create dopo il giorno
Febbraio 2020, REGION_ID.r
è incluso in
URL di App Engine. Per le app esistenti create prima di questa data,
l'ID regione è facoltativo nell'URL.
Scopri di più sugli ID regione.
Scopri come eseguire la tua applicazione localmente, come eseguirne il deployment e come testarla in App Engine.
Esegui localmente
Esegui un test dell'applicazione prima del deployment, eseguila nel tuo ambiente locale con gli strumenti di sviluppo che usi abitualmente.
Esegui il deployment dell'applicazione
Esegui il deployment della tua applicazione in App Engine utilizzandogcloud app deploy
.
Il servizio Cloud Build crea automaticamente il deployment in un'immagine container ed esegue il deployment dell'immagine nell'ambiente flessibile di App Engine. Il contenitore include tutte le modifiche locali che hai apportato all'immagine runtime.
Per eseguire il deployment delle app in modo programmatico, utilizza API Admin.
Prima di iniziare
Prima di poter eseguire il deployment della tua applicazione:
Il proprietario di il progetto Google Cloud deve configurare il progetto Google Cloud per App Engine.
Assicurati che il tuo account utente Includa i privilegi richiesti.
Esegui il deployment di un servizio
Puoi eseguire il deployment della tua applicazione in App Engine eseguendo il deployment delle versioni ai servizi dell'applicazione e a ognuno dei relativi file di configurazione.
Puoi eseguire il deployment file di configurazione il tuo servizio mediante il targeting e il deployment di ogni file separatamente, ad esempio:
gcloud app deploy cron.yaml gcloud app deploy dispatch.yaml gcloud app deploy index.yaml
Per specificare un ID versione personalizzato, utilizza il flag
--version
.Per impedire che il traffico venga instradato automaticamente alla nuova versione, usa il flag
--no-promote
.Per eseguire il deployment in un progetto Google Cloud specifico, utilizza il flag
--project
.
Ad esempio, per eseguire il deployment del servizio definito dal file app.yaml
in una specifica
Google Cloud, assegna al servizio un ID versione personalizzato e impedisci
il traffico venga indirizzato alla nuova versione:
gcloud app deploy --project PROJECT_ID --version VERSION_ID --no-promote
Per ulteriori informazioni, consulta la documentazione di riferimento di gcloud app deploy
.
Puoi impostare le proprietà
per gcloud CLI e creare e gestire
Configurazioni SDK
quindi non devi specificare flag come --project
ogni volta che esegui il deployment.
Ignora file
Puoi utilizzare una .gcloudignore
per specificare i file e le directory da non caricare su Google Cloud
quando esegui il deployment dei servizi. È utile per ignorare gli artefatti della build
e altri file che non devono essere caricati insieme al deployment.
Scopri di più sulla sintassi del file .gcloudignore
nel
Riferimento gcloud
.
Crea manualmente un container per il deployment
Per creare immagini container al di fuori di Google Cloud:
- Carica le immagini in un repository Artifact Registry. Per ulteriori informazioni, consulta Immagini push e pull.
- Esegui il deployment in App Engine con il comando
gcloud app deploy
.
Ad esempio, se crei immagini container in locale con Docker, puoi
esegui il push delle immagini in Artifact Registry
e specifica l'URL dell'immagine nel flag --image-url
del comando:
gcloud app deploy --image-url LOCATION-docker.pkg.dev/PROJECT-ID/REPOSITORY/IMAGE
Sostituisci:
LOCATION con la posizione del repository in cui è stata creata l'immagine viene archiviato.
PROJECT-ID con Google Cloud ID progetto.
REPOSITORY con il nome del repository in cui è stata creata l'immagine viene archiviato.
IMAGE con il nome dell'immagine container.
Usa pipeline di deployment continuo automatizzate
Puoi utilizzare Cloud Build per automatizzare i deployment nel deployment continuo pipeline di dati. Per ulteriori informazioni, vedi Deployment in App Engine e Creare e gestire i trigger di build nella documentazione di Cloud Build.
Immagini di base Docker
Se vuoi creare un'applicazione di runtime personalizzata, consulta Crea un file Docker.
visualizza l'applicazione
Dopo aver eseguito il deployment dell'applicazione in App Engine, puoi eseguire
il seguente comando per avviare il browser e visualizzarlo
https://PROJECT_ID.REGION_ID.r.appspot.com
:
gcloud app browse
Test su App Engine
Prima di configurare una nuova versione per ricevere il traffico, puoi testarla
in App Engine. Ad esempio, per testare una nuova versione
Servizio default
:
Esegui il deployment della nuova versione e includi il flag
--no-promote
:gcloud app deploy --no-promote
Per accedere alla nuova versione, visita il seguente URL:
https://VERSION_ID-dot-default-dot-PROJECT_ID.REGION_ID.r.appspot.com
Ora puoi testare la nuova versione nel runtime di App Engine completamente gestito di Google Cloud. Puoi eseguire il debug dell'applicazione visualizzando i log nel Esplora log della console Google Cloud. Per ulteriori informazioni, consulta la sezione Scrittura di applicazioni. Log.
Richieste inviate a
https://PROJECT_ID.REGION_ID.r.appspot.com
verrà comunque indirizzato alla versione configurata in precedenza per ricevere per via del traffico.Quando vuoi inviare traffico alla nuova versione, utilizza il metodo Console Google Cloud per eseguire la migrazione del traffico:
Seleziona la versione di cui hai appena eseguito il deployment e fai clic su Esegui la migrazione del traffico.
Puoi utilizzare la stessa procedura per testare le nuove versioni di altri servizi
sostituendo default
nell'URL con il nome del tuo servizio:
https://VERSION-dot-SERVICE-dot-PROJECT_ID.REGION_ID.r.appspot.com
Per ulteriori informazioni sul targeting di versioni e servizi specifici, consulta Modalità di routing delle richieste.
Utilizza le variabili di ambiente di build
Puoi impostare variabili di ambiente di build per i runtime che supportano buildpacks.
Le variabili di ambiente di build sono coppie chiave/valore che puoi specificare e configurare il buildpack che usi per il deployment dell'app. Ad esempio, potresti se vuoi specificare le opzioni del compilatore.
Prima di iniziare:
- Le chiavi devono iniziare con una lettera ASCII maiuscola e possono includere lettere ASCII maiuscole, numeri e trattini bassi.
- Dovresti evitare di creare variabili con una chiave
GOOGLE_*
. . - Le seguenti chiavi sono riservate all'utilizzo di Google:
GOOGLE_RUNTIME
GOOGLE_RUNTIME_VERSION
GOOGLE_ENTRYPOINT
GOOGLE_DEVMODE
- Puoi utilizzare qualsiasi chiave supportata buildpacks.
Per utilizzare le variabili di ambiente con i buildpack, specifica
build_env_variables
nel file app.yaml
.
Scopri di più sui buildpack.
Utilizzo di Cloud Trace
Cloud Trace è utile per comprendere il modo in cui le richieste si propagano attraverso un'applicazione. Puoi esaminare informazioni dettagliate sulla latenza per una singola richiesta o visualizzare la latenza aggregata per l'intera applicazione.
Puoi visualizzare i dettagli della traccia. In Esplora tracce puoi filtrare in base alle Servizio e versione di App Engine.
Risoluzione dei problemi
Di seguito sono riportati i messaggi di errore comuni che potresti ricevere durante il deployment app:
PERMISSION_DENIED: Operation not allowed
The "appengine.applications.create" permission is required.
- Se il progetto Google Cloud non include la richiesta
App Engine
dell'applicazione,
Il comando
gcloud app deploy
può non riuscire quando tenta di eseguiregcloud app create
. Solo gli account con il ruolo Proprietario delle autorizzazioni necessarie per creare applicazioni App Engine. 502 Bad Gateway
- Il progetto Google Cloud può non essere avviato se
app.yaml
non è configurato correttamente. Controllare i log dell'app per visualizzare messaggi di errore più dettagliati. [13] An internal error occurred while creating a Cloud Storage bucket.
App Engine crea un bucket Cloud Storage predefinito a più regioni per tuo conto nella stessa regione in cui crea l'applicazione. Richiede questo bucket per archiviare i contenuti della tua applicazione. L'errore viene restituito quando questo bucket non può essere creato, come nei seguenti scenari:
L'agente di servizio dell'ambiente flessibile di App Engine non è presente nel progetto o non presenta
App Engine flexible environment Service Agent
. Puoi aggiungere l'agente dell'agente l'account di servizio nel progetto assegnandogli i valori IAM corretti autorizzazioni aggiuntive. Consulta Ripristinare un agente di servizio eliminato.L'account di servizio predefinito di App Engine non è presente nel tuo progetto. Se l'account di servizio App Engine è stato rimosso che non siano trascorsi 30 giorni dalla sua eliminazione, puoi ripristinarla.
Il tuo progetto si trova in un'organizzazione che applica i Norme relative a
constraints/gcp.resourceLocations
e l'organizzazione non consente la creazione di risorse sullo stesso regione dove si trovava App Engine è stato creato. Devi eseguire l'override del criterioconstraints/gcp.resourceLocations
applicato per il tuo progetto e consenti le località con più regioni nella stessa regione in cui è stata creata l'app di App Engine.
Ad esempio, se la tua app App Engine viene creata in
europe-west
regione, anche se la regione è mappata alleeurope-west1
località, devi modificare il vincolo per consentire le risorse inin:eu-locations
, che include tutte leEU
regioni. Questa operazione è necessaria perché I bucket creati da App Engine sono multiregionali. Se il tuo App Engine viene creata nella regioneUS
, devi consentirein:us-locations
e se la tua app è creato nelle regioniASIA
, devi consentirein:asia-locations
.[13] An internal error occurred.
Questo errore può verificarsi se esegui il deployment del servizio con una rete che utilizza una configurazione del VPC condiviso. Prova a procedere come segue:
- Assicurati che la configurazione di
app.yaml
sia valida. - Assicurati che il tuo ambiente flessibile di App Engine soddisfi tutti i requisiti per la configurazione di un VPC condiviso. Consulta Utilizzo dell'ambiente flessibile di App Engine in una VPC condiviso condivisa.
- Assicurati di aver configurato gli account di servizio. presenti nel tuo progetto. In caso contrario, devi ripristinare gli account. La regione della subnet nel progetto host del VPC condiviso deve corrispondere alla location in cui il tuo App Engine è stato creato un ambiente di archiviazione.
- Assicurati che la configurazione di
Se il problema persiste, esegui nuovamente il deployment del servizio utilizzando Google Cloud SDK. Essere assicurati di aggiungere il flag
--verbosity=debug
. Contatta l'assistenza Google Cloud e fornisci il dell'output del comando.IP space of {USER_SUBNETWORK_NAME} is exhausted and needs to be expanded.
Se il deployment non riesce e appare questo messaggio di errore, la rete configurata al servizio App Engine non sono rimasti indirizzi da allocare per delle nuove istanze del servizio. Per risolvere il problema, espandi gli intervalli VPC nella subnet configurata per il servizio nell'ambiente flessibile di App Engine.