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

A partire dal 15 settembre 2019, se utilizzi i controlli di integrità legacy, continuerà a essere eseguita e a ricevere controlli di integrità, ma in grado di eseguire il deployment di nuove versioni della tua 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à in uso nell'applicazione, esegui seguente comando:

gcloud app describe

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

featureSettings:
    splitHealthChecks: true

Comprendere le principali differenze

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 inoltrati devono restituire 200 OK se integro e pronto per l'uso. 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 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 vengono mantenute, la VM continuano a ricevere traffico e a rimanere attive indipendentemente dalle impostazioni stato.

Al contrario, quando sono abilitati i controlli di integrità precedenti, se lo stato della tua app è /_ah/health il percorso inizia a restituire codici di errore HTTP non integro (ad esempio 5XX), quindi integrità precedente i controlli inizieranno a non riuscire e la VM smetterà di ricevere traffico è stata riavviata.

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

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

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

Opzione Mantenimento dello 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 in modo da utilizzare 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 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 sullo 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à periodici

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 seguenti passaggi:

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

  2. Convertire 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à legacy, devi rimuovere Sezione health_check del 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à.