Problemi noti nell'ambiente flessibile di App Engine

ID regione

REGION_ID è un codice abbreviato assegnato da Google in base alla regione selezionata quando crei l'app. Il codice non corrisponde a un paese o a una provincia, anche se alcuni ID regione possono sembrare simili ai codici di paesi e province 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 segnalarne uno nuovo, consulta il tracker dei problemi.

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

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

    • Il criterio vigente per constraints/compute.vmExternalIpAccess è impostato su DENY_ALL.
    • Il criterio efficace per constraints/compute.vmExternalIpAccess è impostato su consenti solo istanze VM specifiche.

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

    Tuttavia, anche con questi criteri dell'organizzazione impostati, puoi implementare un'app privata dell'ambiente flessibile App Engine che utilizza solo il proprio 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 notevolmente. La metrica tornerà gradualmente al numero di richieste previsto nel corso dei prossimi 5-10 minuti.

    Ciò non significa che la tua applicazione stia pubblicando meno richieste. Quando esegui il deployment di una nuova versione dell'applicazione, c'è 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 dal 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 del periodo di 15 minuti dopo il 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. Questo è 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, per il tuo progetto potrebbero essere fatturate le metriche con prefisso agent.googleapis.com. In genere, queste metriche dell'agente non vengono addebitate al tuo progetto. Ti consigliamo di continuare a utilizzare l'account di servizio predefinito di App Engine finché questo problema non sarà stato risolto.

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

Riduzione imprevista del numero di istanze

  • In rari casi, la tua applicazione potrebbe registrare una riduzione imprevista del numero di istanze a causa di errori di zona o se un intero gruppo di istanze smette di rispondere. Per evitarlo, Google consiglia di eseguire il provisioning eccessivo dell'applicazione per impedire al sistema di scendere al di sotto del numero minimo di istanze. Puoi impostare il valore min_num_instances dell'applicazione dell'ambiente flessibile App Engine durante il deployment. Alcuni eventi che possono influire sul numero minimo di istanze dell'ambiente flessibile di App Engine sono:

    1. Implementazione di aggiornamenti alle istanze dell'ambiente flessibile
    2. Errore zonale (problemi di esaurimento scorte, ad esempio quando la regione ha raggiunto la capacità per la CPU selezionata e così via)

    L'ambiente flessibile App Engine utilizza 3 zone per distribuire le istanze e, in una configurazione di questo tipo, consigliamo di eseguire il provisioning del 50% in più di istanze rispetto a quelle richieste.

Metriche di Cloud Load Balancing incoerenti

La dashboard dell'ambiente flessibile di App Engine mostra tutte le metriche solo per le richieste inoltrate tramite un backend gestito dall'ambiente flessibile. Se utilizzi l'ambiente flessibile di App Engine con Cloud Load Balancing, alcune metriche nella tabella delle metriche di App Engine vengono registrate come metriche della tabella loadbalancing. Per ulteriori informazioni, consulta Logging e monitoraggio del bilanciamento del carico HTTP(S).