Migrazione dai controlli di integrità precedenti a quelli suddivisi

A partire dal 15 settembre 2019, se utilizzi i controlli di integrità legacy, l'applicazione continuerà a eseguire e ricevere controlli di integrità, ma non potrai eseguire il deployment di nuove versioni dell'applicazione.

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 dalla tua applicazione, esegui il comando seguente:

gcloud app describe

Se l'applicazione utilizza controlli di integrità suddivisi, la descrizione dovrebbe includere le seguenti informazioni:

featureSettings:
    splitHealthChecks: true

Differenze chiave

Prima di eseguire l'upgrade per suddividere i controlli di integrità, considera le seguenti importanti differenze tra i controlli di integrità precedenti e suddivisi:

  • Le richieste HTTP per i controlli di integrità suddivisi non vengono inoltrate per impostazione predefinita. Per impostazione predefinita, i controlli di integrità legacy inoltrano al percorso /_ah/health nella tua applicazione.

  • I controlli di integrità suddivisi inoltrati devono restituire 200 OK in stato integro e pronto. I controlli di integrità legacy considerano integri i seguenti codici HTTP: 200, 301, 302, 303, 307, 401, 402, 403, 404 e 405.

Se non specifichi un percorso di verifica della vitalità o un percorso di verifica dell'idoneità, i controlli di integrità suddivisi per impostazione predefinita confermeranno solo che l'istanza VM e il container Docker sono in esecuzione. Finché queste condizioni sono soddisfatte, la VM continuerà a ricevere traffico e rimarrà attiva, indipendentemente dallo stato interno dell'app.

Per contro, se sono abilitati i controlli di integrità legacy, se il percorso /_ah/health dell'app inizia a restituire codici di errore HTTP in stato non integro (ad es. 5XX), i controlli di integrità legacy non riusciranno e la VM smetterà di ricevere il traffico e verrà riavvio.

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

Conversione delle opzioni di controllo di integrità legacy

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

Opzione Mantenere lo stesso comportamento nei controlli di integrità suddivisi
enable_health_check Se il criterio True o se non viene configurato, configura liveness_check.path e readiness_check.path in un percorso dell'app che restituisca 200 OK quando l'app è integra.
check_interval_sec Configura liveness_check.check_interval_sec e readiness_check.check_interval_sec con lo stesso valore.
timeout_sec Configura liveness_check.timeout_sec e readiness_check.timeout_sec con lo 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 con lo 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 la rimozione di una VM in stato non integro.

Attivazione dei controlli di integrità suddivisi

Per eseguire la migrazione dai controlli di integrità legacy per suddividere i controlli di integrità ed evitare di visualizzare codici di stato 5xx elevati, completa i passaggi seguenti:

  1. Comprendi le differenze importanti tra i controlli di integrità precedenti e 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. Ad esempio, consulta le pagine Controlli di attività e Controlli di idoneità.

  3. Esegui il comando seguente:

    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 usare i controlli di integrità e di idoneità.