Se riscontri problemi durante il deployment dell'app utilizzando l'API App Engine Admin, in questa sezione sono elencati i messaggi di errore e i suggerimenti per correggere ogni errore.
Il chiamante non dispone dell'autorizzazione per accedere al progetto
Quando esegui il deployment dell'app, si verifica il seguente errore:
User EMAIL_ADDRESS does not have permission to access project PROJECT_ID (or it may not exist): The caller does not have permission
Questo errore si verifica se l'account utilizzato per il deployment dell'app non ha l'autorizzazione per eseguire il deployment di app per il progetto corrente.
Per risolvere il problema,
concedi all'account il
ruolo App Engine Deployer (roles/appengine.deployer
). Per vedere quale account hai utilizzato per il deployment, svolgi una delle seguenti operazioni:
- Se hai utilizzato Google Cloud CLI per il deployment, esegui il comando
gcloud auth list
. - Se hai eseguito il deployment da un IDE, visualizza le impostazioni del plug-in Cloud Tools.
Impossibile recuperare i metadati dal registry
Quando esegui il deployment dell'app, si verifica il seguente errore:
Failed to fetch metadata from the registry, with reason: generic::permission_denied
Questo errore si verifica se utilizzi il comando gcloud app deploy
da un account servizio che non dispone del ruolo Amministratore di archiviazione (roles/storage.admin
).
Per risolvere il problema, concedi il ruolo Amministratore Storage all'account di servizio:
- Per vedere quale account hai utilizzato, esegui il comando
gcloud auth list
. - Per scoprire perché l'assegnazione solo del ruolo Deployer App Engine (
roles/appengine.deployer
) potrebbe non essere sufficiente in alcuni casi, consulta Ruoli App Engine.
Gli account di servizio devono avere autorizzazioni per l'immagine
Quando esegui il deployment dell'app, si verifica il seguente errore:
The App Engine appspot and App Engine flexible environment service accounts must have permissions on the image IMAGE_NAME
Questo errore si verifica per uno dei seguenti motivi:
L'account di servizio App Engine predefinito non dispone del ruolo Visualizzatore oggetti Storage (
roles/storage.objectViewer
).- Per risolvere il problema, concedi il ruolo Visualizzatore oggetti Storage all'account di servizio.
Il tuo progetto ha un perimetro di servizio VPC che limita l'accesso all'API Cloud Storage utilizzando i livelli di accesso.
- Per risolvere il problema, aggiungi l'account di servizio che utilizzi per eseguire il deployment dell'app al accessPolicies del perimetro di servizio VPC corrispondente.
Impossibile creare Cloud Build
Quando esegui il deployment dell'app, si verifica il seguente errore:
Failed to create cloud build: Permission denied
Questo errore si verifica se utilizzi il comando gcloud app deploy
da un account che
non ha il ruolo Editor di Cloud Build (roles/cloudbuild.builds.editor
).
Per risolvere il problema, concedi il ruolo Editor di Cloud Build all'account di servizio che stai utilizzando per eseguire il deployment della tua app.
Per vedere quale account hai utilizzato, esegui il comando
gcloud auth list
.
Errore di autorizzazione durante il recupero dell'applicazione
Quando esegui il deployment dell'app, si verifica il seguente errore:
Permissions error fetching application apps/app_name. Please make sure you are using the correct project ID and that you have permission to view applications on the project
Se utilizzi Google Cloud CLI versione 328 o successive, si verifica il seguente errore quando esegui il deployment dell'app:
Permissions error fetching application apps/app_name. Please make sure that you have permission to view applications on the project and that SERVICE_ACCOUNT has the App Engine Deployer (roles/appengine.deployer) role.
Questo errore si verifica se l'account utilizzato per eseguire il deployment dell'app non dispone del ruolo Deployer App Engine (roles/appengine.deployer
).
Per risolvere il problema, verifica di aver concesso il ruolo App Engine Deployer all'account di servizio utilizzato per eseguire il deployment dell'app. Concede il ruolo se l'account di servizio non lo ha. Per vedere quale account hai utilizzato per il deployment, svolgi una delle seguenti operazioni:
- Se hai utilizzato Google Cloud CLI per il deployment, esegui il comando
gcloud auth list
. - Se hai eseguito il deployment da un IDE, visualizza le impostazioni del plug-in Cloud Tools.
L'deployment non va a buon fine per i nuovi progetti
Quando esegui il deployment dell'app per la prima volta in un nuovo progetto, potresti visualizzare il seguente errore:
ERROR: (gcloud.app.deploy) Error Response: [13] Failed to create cloud build: com.google.net.rpc3.client.RpcClientException:..........invalid bucket "staging.PROJECT-ID.appspot.com"; service account PROJECT-ID@appspot.gserviceaccount.com does not have access to the bucket
Questo errore può essere causato da vari fattori, ad esempio autorizzazioni mancanti e modifiche ai criteri dell'organizzazione.
Per risolvere il problema, verifica di aver concesso il ruolo Amministratore archiviazione (roles/storage.admin
) all'account di servizio predefinito. Per concedere il ruolo Amministratore Storage, vedi Archiviare i log di compilazione in un bucket creato dall'utente
Se hai già concesso il ruolo Amministratore archiviazione, insieme agli altri ruoli richiesti in base ai diversi errori di autorizzazione che riscontri durante il deployment, ma non riesci ancora a eseguire il deployment dell'app, il motivo potrebbe essere dovuto alle seguenti modifiche ai criteri dell'organizzazione:
A partire da maggio 2024, Google Cloud applica criteri dell'organizzazione sicuri per impostazione predefinita per tutte le risorse dell'organizzazione. Questo criterio impedisce ad App Engine di concedere il ruolo
Editor
agli account di servizio predefiniti di App Engine per impostazione predefinita.A partire da giugno 2024, Cloud Build ha modificato il comportamento predefinito per la modalità di utilizzo degli account di servizio nei nuovi progetti. Questa modifica è dettagliata in Modifica dell'account di servizio Cloud Build. A seguito di questa modifica, i nuovi progetti che eseguono il deployment delle versioni per la prima volta potrebbero utilizzare l'account di servizio App Engine predefinito con autorizzazioni insufficienti per il deployment delle versioni.
Per risolvere il problema:
Concedi il ruolo
Editor
all'account di servizio predefinito di App Engine (PROJECT_ID@appspot.gserviceaccount.com
).Consulta le indicazioni di Cloud Build sulle modifiche all'account di servizio predefinito e disattiva le modifiche predefinite nei nuovi progetti.
Timeout durante l'attesa dell'integrità dell'infrastruttura dell'app
Quando esegui il deployment dell'app, si verifica il seguente errore:
Timed out waiting for the app infrastructure to become healthy
Questo errore può essere causato da vari fattori, ad esempio autorizzazioni mancanti, errori di codice, CPU o memoria insufficienti o controlli di integrità non riusciti. L'errore si verifica solo nell'ambiente flessibile di App Engine.
Per risolvere il problema, elimina le seguenti potenziali cause:
- Verifica di aver concesso il
ruolo Editor (
roles/editor
) al tuo account di servizio App Engine predefinito. Verifica di aver concesso i seguenti ruoli all'account di servizio che utilizzi per eseguire l'applicazione (di solito l'account di servizio predefinito,
app-id@appspot.gserviceaccount.com
):Concedi i ruoli se non sono presenti nell'account di servizio.
Se esegui il deployment nella configurazione VPC condiviso e passi
instance_tag
inapp.yaml
, consulta questa sezione per risolvere il problema.
Errore di autorizzazione durante il deployment di un servizio con il connettore di accesso VPC serverless
Quando esegui il deployment dell'app, si verifica il seguente errore:
Please ensure you have [compute.globalOperations.get] on the service project
Questo errore si verifica quando l'account utente o di servizio che sta tentando di eseguire il deployment dell'app con il connettore VPC serverless non dispone delle autorizzazioni richieste.
Per risolvere il problema, assicurati che l'utente o l'account di servizio che esegue il deployment abbia i ruoli Utente con accesso alla VPC serverless e Visualizzatore IAM di Compute.
Errore relativo a un valore non valido durante il deployment in una configurazione VPC condiviso
Quando esegui il deployment della tua app, in Cloud Logging per le istanze VM Flex viene visualizzato il seguente errore:
Invalid value for field 'resource.tags.items[1]': 'aef-instance'. Duplicate tags are not allowed: aef-instance on compute.instances.insert
Questo errore è dovuto a un problema noto in cui l'impostazione di instance_tag genera errori durante la creazione delle istanze.
Per risolvere il problema, rimuovi il campo instance_tag
dal file app.yaml
e esegui nuovamente il deployment.
Errori durante il deployment di app con un massimo di tre istanze
Le app di cui è stato eseguito il deployment con max_instances
impostato su tre o meno potrebbero presentare errori o tempi di inattività imprevisti. Per risolvere il problema, specifica almeno quattro istanze massime nel file app.yaml
e esegui nuovamente il deployment.
Errore durante il superamento del limite di istanze massime
Quando esegui il deployment dell'app, si verifica il seguente errore:
You may not have more than 'xx' total max instances in your project.
Esiste un limite al numero massimo di istanze che puoi creare per progetto. Le richieste di creazione di istanze aggiuntive non andranno a buon fine se superi questo limite.
Per risolvere il problema, imposta il valore di max_instances
nel file app.yaml
su un valore inferiore a questo limite o elimina alcuni servizi o versioni per riportare la somma di max_instances
al di sotto del limite.
La compilazione durante il deployment non va a buon fine, ma non vengono visualizzati errori nei log
Quando esegui il deployment dell'app, si verifica il seguente errore:
ERROR: (gcloud.app.deploy) Cloud build failed. Check logs at https://console.cloud.google.com/cloud-build/builds/BUILD_ID?project=PROJECT_NUMBER Failure status: UNKNOWN: Error Response: [2] Build failed; check build logs for details
Se segui il link nel messaggio di errore, viene visualizzato che tutti i passaggi di compilazione sono stati completati correttamente. Tuttavia, la compilazione dell'app non è riuscita.
Questo problema si verifica se utilizzi chiavi di crittografia gestite dal cliente
(CMEK) o se hai configurato un regolamento sulla conservazione dei dati
per il tuo bucket staging.PROJECT_ID.appspot.com
.
Per risolvere il problema, modifica le seguenti impostazioni per il bucketstaging.PROJECT_ID.appspot.com
:
- Imposta la crittografia su Chiavi di proprietà e gestite da Google.
- Rimuovi la norma di conservazione.
La compilazione durante il deployment non riesce quando viene eseguita con NODE_ENV=development
Questo errore potrebbe verificarsi durante il deployment di un'applicazione Node.js. Per impostazione predefinita, il runtime Node.js eseguirànpm run build
se nel file package.json
viene rilevato uno script build
.
Ciò potrebbe causare comportamenti imprevisti come build di lunga durata o errori di esaurimento della memoria.
Specifica NODE_ENV=development
nel file app.yaml
per assicurarti che l'esecuzione abbia tutte le dipendenze richieste.
Nonostante l'errore, puoi forzare la produzione specificando NODE_ENV: 'production'
in
build-env-variables
nel file app.yaml
:
build_env_variables:
NODE_ENV: 'production'
Per ulteriori informazioni, consulta Eseguire i passaggi di compilazione personalizzati durante il deployment.