Eseguire la migrazione dai controlli di integrità legacy a quelli periodici

A partire dal 15 settembre 2019, se utilizzi i controlli di integrità precedenti, la tua applicazione continuerà a funzionare e a ricevere controlli di integrità, ma non potrai implementare nuove versioni.

Questa pagina spiega come eseguire l'upgrade dai controlli di integrità legacy ai controlli di integrità suddivisi.

Verifica del tipo di controllo di integrità

Per verificare il tipo di controlli di integrità utilizzati dall'applicazione, esegui il seguente comando:

gcloud app describe

Se la tua applicazione utilizza controlli di integrità suddivisi, la descrizione deve includere le seguenti informazioni:

featureSettings:
    splitHealthChecks: true

Informazioni sulle differenze principali

Prima di eseguire l'upgrade ai controlli di integrità suddivisi, tieni presente le seguenti importanti differenze tra i controlli di integrità precedenti e quelli suddivisi:

  • Le richieste HTTP per i controlli di integrità suddivisi non vengono inoltrate per impostazione predefinita. I controlli di integrità legacy, invece, inoltrano al percorso /_ah/health all'interno della tua applicazione per impostazione predefinita.

  • I controlli di integrità suddivisi inviati devono restituire 200 OK se sono integri e pronti. I controlli di integrità precedenti considerano i seguenti codici HTTP come integri: 200, 301, 302, 303, 307, 401, 402, 403, 404, 405.

Se non specifichi un percorso del controllo di attività o un percorso del controllo di idoneità, per impostazione predefinita i controlli di integrità suddivisi confermano solo che l'istanza VM e il contenitore Docker sono in esecuzione. Finché queste condizioni rimangono valide, la VM continuerà a ricevere traffico e a rimanere attiva indipendentemente dallo stato interno dell'app.

Al contrario, quando i controlli di integrità precedenti sono abilitati, se il percorso /_ah/health della tua app inizia a restituire codici di errore HTTP non integri (ad es. 5XX), i controlli di integrità precedenti inizieranno a non riuscire e la VM smetterà di ricevere traffico e verrà riavviata.

Se la tua app dipende dal comportamento predefinito del controllo di integrità precedente, imposta il percorso del controllo di attività e il percorso del controllo di idoneità di conseguenza.

Conversione delle opzioni di controllo di integrità legacy

Ogni opzione di controllo di integrità legacy può essere riscritta utilizzando i controlli di integrità suddivisi come segue:

Opzione Mantenimento dello stesso comportamento nei controlli di integrità suddivisi
enable_health_check Se True o non impostato, configura liveness_check.path e readiness_check.path su un percorso nell'app che restituisce 200 OK quando l'app è integra.
check_interval_sec Configura liveness_check.check_interval_sec e readiness_check.check_interval_sec sullo stesso valore.
timeout_sec Configura liveness_check.timeout_sec e readiness_check.timeout_sec sullo stesso valore.
unhealthy_threshold Configura readiness_check.failure_threshold con lo stesso valore.
healthy_threshold Configura liveness_check.success_threshold e readiness_check.success_threshold sullo stesso valore.
restart_threshold Configura liveness_check.failure_threshold con lo stesso valore. Tieni presente che il valore dell'opzione check_interval_sec moltiplicato per l'opzione failure_threshold corrisponde al tempo necessario per il ritiro di una VM non funzionante.

Attivazione dei controlli di integrità periodici

Per eseguire la migrazione dai controlli di integrità precedenti a quelli suddivisi ed evitare di visualizzare codici di stato 5xx elevati, completa i seguenti passaggi:

  1. Scopri le differenze importanti tra i controlli di integrità precedenti e quelli suddivisi.

  2. Converti le opzioni di controllo di integrità precedenti per ogni versione dell'applicazione.

    In alternativa, puoi personalizzare la sezione liveness_check o readiness_check nel file app.yaml per ogni versione. Per alcuni esempi, consulta Controlli di attività e Controlli di idoneità.

  3. Esegui questo comando:

    gcloud app update --split-health-checks --project [YOUR_PROJECT_ID]
  4. Se hai utilizzato impostazioni personalizzate per i controlli di integrità precedenti, devi rimuovere la sezione health_check dal file app.yaml.

  5. Esegui il deployment di una nuova versione principale dell'app per iniziare a utilizzare i controlli di salute di attivazione e idoneità.