Esegui la migrazione dalla versione precedente ai controlli di integrità suddivisi

A partire dal 15 settembre 2019, se utilizzi i controlli di integrità legacy, l'applicazione continuerà a essere eseguita e a 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à in corso...

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

gcloud app describe

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

featureSettings:
    splitHealthChecks: true

Comprendere le differenze principali

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

  • Le richieste HTTP per i controlli di integrità suddivisi non vengono inoltrate per impostazione predefinita. Al contrario, per impostazione predefinita, i controlli di integrità legacy inoltrano il percorso /_ah/health nell'applicazione.

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

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

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

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

Conversione delle opzioni di controllo di integrità legacy in corso...

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

Opzione Mantenere lo stesso comportamento nei controlli di integrità suddivisi
enable_health_check Se il criterio True o non viene configurato, configura liveness_check.path e readiness_check.path con un percorso nell'app che restituisce 200 OK quando l'app è integro.
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 è il 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 i codici di stato 5xx elevati, completa i seguenti passaggi:

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

  2. Converti le opzioni di controllo di integrità legacy per ogni versione della tua 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à legacy, devi rimuovere la sezione health_check dal file app.yaml.

  5. Esegui il deployment di una nuova versione principale della tua app per iniziare a utilizzare i controlli di integrità di attività e idoneità.