Risolvere i problemi di deployment

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 che hai utilizzato per eseguire il deployment dell'app non dispone di per eseguire il deployment delle app per il progetto attuale.

Per risolvere il problema, concedi il Ruolo Deployer App Engine (roles/appengine.deployer) all'account. Per vedere quale account hai utilizzato per il deployment, esegui una delle seguenti:

  • 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 per il plug-in Cloud Tools.

Impossibile recuperare i metadati dal registro

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 Storage Admin per l'account di servizio:

  • Per vedere quale account hai utilizzato, esegui il comando gcloud auth list.
  • Per scoprire perché l'assegnazione solo del ruolo App Engine Deployer (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:

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 la classe Ruolo Editor Cloud Build per all'account di servizio che usi per il deployment dell'app.

Per sapere quale account hai utilizzato, esegui il Comando gcloud auth list.

Errore delle autorizzazioni 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 App Engine Deployer (roles/appengine.deployer).

Per risolvere il problema, verifica di aver concesso il ruolo Deployer App Engine per l'account di servizio che hai utilizzato per eseguire il deployment dell'app. concedere il ruolo se non è presente nell'account di servizio. Per vedere quale account hai utilizzato per il deployment, procedi nel seguente modo: uno dei seguenti:

  • Se hai utilizzato Google Cloud CLI per il deployment, esegui Comando gcloud auth list.
  • Se hai eseguito il deployment da un IDE, visualizza le impostazioni per il plug-in Cloud Tools.

Il deployment non riesce 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

L'errore può essere causato da vari fattori, tra cui la mancanza di autorizzazioni. 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, consulta Archiviare i log di build in un bucket creato dall'utente

Se hai già concesso il ruolo Amministratore archiviazione, insieme agli altri ruoli richiesti in base a diversi errori di autorizzazione riscontrati 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. Queste norme impedisce ad App Engine di concedere il ruolo Editor all'impostazione predefinita di App Engine di Google Cloud 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. In seguito a questo cambiamento, i nuovi progetti che eseguono il deployment delle versioni per la prima volta potrebbero utilizzare l'account di servizio App Engine con autorizzazioni insufficienti per il deployment delle versioni.

Per risolvere il problema:

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:

  1. Verifica di aver concesso Ruolo di Editor (roles/editor) per il tuo l'account di servizio predefinito di App Engine.
  2. 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):

  3. Concedi i ruoli se l'account di servizio non li ha.

  4. Se esegui il deployment nella configurazione VPC condivisa e passi instance_tag in app.yaml, consulta questa sezione per risolvere il problema.

Errore relativo alle autorizzazioni durante il deployment di un servizio con 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 di valore non valido durante il deployment in una configurazione VPC condivisa

Il seguente errore viene visualizzato in Cloud Logging per le istanze VM Flex quando esegui il deployment la tua app:

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 corrente in cui l'impostazione di instance_tag può causare errori durante la creazione delle istanze.

Per risolvere il problema, rimuovi instance_tag dal file app.yaml ed 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 creazione durante il deployment non riesce senza errori nei log

Durante 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 creazione dell'app non è riuscita.

Questo problema si verifica se utilizzi chiavi di crittografia gestite dal cliente. (CMEK) o hai configurato un criterio di conservazione dei dati per il bucket staging.PROJECT_ID.appspot.com.

Per risolvere il problema, modifica le seguenti impostazioni per il bucketstaging.PROJECT_ID.appspot.com:

La build durante il deployment ha esito negativo se viene eseguita con NODE_ENV=development

Questo errore potrebbe verificarsi quando esegui il deployment di un'applicazione Node.js. Per impostazione predefinita, il file Node.js il runtime verrà eseguito npm run build se viene rilevato uno script build nel file package.json.

Questo potrebbe causare comportamenti imprevisti come build a lunga esecuzione o mancanza di memoria errori.

Specifica NODE_ENV=development nel file app.yaml per assicurarti che dell'esecuzione ha tutte le dipendenze necessarie.

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 Esecuzione di passaggi di build personalizzati durante il deployment.