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
e405
.
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:
Comprendi le differenze importanti tra i controlli di integrità precedenti e suddivisi.
Converti le opzioni di controllo di integrità precedenti per ogni versione dell'applicazione.
In alternativa, puoi personalizzare la sezione
liveness_check
oreadiness_check
nel fileapp.yaml
per ogni versione. Ad esempio, consulta le pagine Controlli di attività e Controlli di idoneità.Esegui il comando seguente:
gcloud app update --split-health-checks --project [YOUR_PROJECT_ID]
Se hai utilizzato impostazioni personalizzate per i controlli di integrità precedenti, devi rimuovere la sezione
health_check
dal fileapp.yaml
.Esegui il deployment di una nuova versione principale dell'app per iniziare a usare i controlli di integrità e di idoneità.