Problemi noti nell'ambiente flessibile di App Engine

ID regione

REGION_ID è un codice abbreviato assegnato da Google in base alla regione selezionata al momento della creazione dell'app. Non corrisponde a un paese o a una provincia, anche se alcuni ID regione possono apparire simili ai codici di paese e provincia di uso comune. Per le app create dopo febbraio 2020, REGION_ID.r è incluso negli 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.

Per un elenco completo dei problemi noti o per segnalare un nuovo problema, vedi Issue Tracker.

  • Dopo aver eseguito il deployment dell'applicazione con gcloud app deploy, potresti dover attendere 1-2 minuti prima che l'applicazione inizi a essere pubblicata alle ore https://PROJECT_ID.REGION_ID.r.appspot.com. Fino ad allora, potresti notare errori HTTP 503.

  • Se nel progetto esiste un criterio dell'organizzazione che limita l'accesso agli IP esterni, non potrai eseguire il deployment di un'app dell'ambiente flessibile di App Engine con indirizzi IP esterni. Ad esempio, il criterio dell'organizzazione potrebbe avere il seguente aspetto:

    • Il criterio in vigore per constraints/compute.vmExternalIpAccess è impostato su DENY_ALL.
    • Il criterio effettivo per constraints/compute.vmExternalIpAccess è impostato per consentire solo istanze VM specifiche.

    Questi vincoli non vengono rilevati automaticamente e i deployment potrebbero scadere e non riuscire. Puoi verificare il criterio dell'organizzazione per il tuo progetto eseguendo il comando gcloud beta resource-manager org-policies describe compute.vmExternalIpAccess --project=my-project --effective. Puoi anche eseguire l'override del criterio dell'organizzazione per un progetto specifico.

    Tuttavia, anche se sono stati impostati questi criteri dell'organizzazione, puoi eseguire il deployment di un'app privata dell'ambiente flessibile di App Engine che utilizza solo il suo indirizzo IP interno.

  • Dopo aver eseguito il deployment di una nuova versione di un servizio esistente nell'ambiente flessibile di App Engine con gcloud app deploy, la metrica "Conteggio/sec" mostrata nel grafico "Riepilogo" della dashboard di App Engine potrebbe diminuire in modo significativo. La metrica tornerà gradualmente al numero di richieste previsto nei successivi 5-10 minuti.

    Questo non significa che la tua applicazione gestisce meno richieste. Quando esegui il deployment di una nuova versione dell'applicazione, si verifica un ritardo tra il momento in cui la nuova versione è pronta per gestire le richieste e il momento in cui le metriche per le nuove istanze diventano disponibili.

    Per assicurarti che questa metrica non sia interessata dal deployment di una nuova versione:

    1. Esegui il deployment della nuova versione con gcloud app deploy --no-promote.
    2. Attendi 15 minuti dopo il completamento del deployment.
    3. Esegui la migrazione del traffico alla nuova versione.

    Se esegui il deployment con --no-promote, ma assegni qualsiasi quantità di traffico alla nuova versione prima che siano trascorsi 15 minuti dal completamento del deployment, questa metrica potrebbe essere interessata.

  • Nell'ambiente flessibile di App Engine non è possibile configurare app.yaml in modo che la tua app reindirizzi automaticamente le richieste in modo che utilizzino sempre HTTPS. È diverso dall'ambiente standard di App Engine, in cui puoi utilizzare l'impostazione secure.

    In alternativa, puoi gestire il reindirizzamento all'interno del codice dell'applicazione analizzando il valore dell'intestazione X-Forwarded-Proto. Puoi anche incoraggiare i clienti a utilizzare l'intestazione Strict-Transport-Security.

  • Se assegni un account di servizio gestito dall'utente a una versione dell'ambiente flessibile di App Engine, al tuo progetto potrebbero essere addebitati dei costi per le metriche con prefisso agent.googleapis.com. Normalmente, queste metriche dell'agente non vengono addebitate al progetto. Ti consigliamo di continuare a utilizzare l'account di servizio predefinito di App Engine fino alla risoluzione di questo problema.

  • Non puoi stabilire una connessione SSH a un'istanza VM utilizzando IAP.

Riduzione imprevista del numero di istanze

  • In rari eventi, l'applicazione potrebbe notare una riduzione imprevista del numero di istanze a causa di errori di zona o se un intero gruppo di istanze non risponde più. Per evitare questo problema, Google consiglia di eseguire il provisioning eccessivo dell'applicazione per evitare che il sistema scenda al di sotto del numero minimo di istanze. Puoi impostare le dimensioni min_num_instances della tua applicazione nell'ambiente flessibile di App Engine durante il deployment. Alcuni eventi che potrebbero influire sul numero minimo di istanze dell'ambiente flessibile di App Engine sono:

    1. Implementazione degli aggiornamenti delle istanze dell'ambiente flessibile
    2. Errore a livello di zona (problemi di disponibilità, ad esempio quando la regione ha raggiunto la capacità per la CPU selezionata e così via)

    L'ambiente flessibile di App Engine utilizza 3 zone per distribuire le istanze e, in questa configurazione, consigliamo consigliamo di eseguire il provisioning del 50% di istanze in più rispetto al necessario.