Desde el 15 de septiembre del 2019, si utilizas las comprobaciones de estado antiguas, tu aplicación seguirá ejecutándose y recibiendo comprobaciones de estado, pero no podrás desplegar nuevas versiones de la aplicación.
En esta página se explica cómo cambiar de las comprobaciones del estado antiguas a las comprobaciones del estado divididas.
Verificar el tipo de comprobación del estado
Para verificar el tipo de comprobaciones de estado que usa tu aplicación, ejecuta el siguiente comando:
gcloud app describe
Si tu aplicación usa comprobaciones de estado divididas, la descripción debe incluir la siguiente información:
featureSettings:
splitHealthChecks: true
Entender las diferencias clave
Antes de cambiar a las comprobaciones de estado divididas, ten en cuenta las siguientes diferencias importantes entre las comprobaciones de estado antiguas y las divididas:
Las solicitudes HTTP de comprobaciones del estado divididas no se reenvían de forma predeterminada. Por el contrario, las comprobaciones de estado antiguas se reenvían a la ruta
/_ah/health
de tu aplicación de forma predeterminada.Las comprobaciones del estado divididas reenviadas deben devolver
200 OK
cuando estén en buen estado y listas. Las comprobaciones de estado antiguas consideran que los siguientes códigos HTTP son correctos:200
,301
,302
,303
,307
,401
,402
,403
,404
y405
.
Si no especificas una ruta de comprobación de actividad o una ruta de comprobación de disponibilidad, de forma predeterminada, las comprobaciones de estado divididas solo confirman que la instancia de VM y el contenedor Docker están en ejecución. Mientras se cumplan estas condiciones, la VM seguirá recibiendo tráfico y permanecerá activa independientemente del estado interno de la aplicación.
Por el contrario, si las comprobaciones de estado antiguas están habilitadas y la ruta /_ah/health
de tu aplicación empieza a devolver códigos de error HTTP incorrectos (por ejemplo, 5XX
), las comprobaciones de estado antiguas empezarán a fallar, la VM dejará de recibir tráfico y se reiniciará.
Si tu aplicación depende del comportamiento predeterminado de la comprobación del estado antigua, define las rutas liveness check path y readiness check path según corresponda.
Convertir opciones de comprobaciones del estado antiguas
Cada opción de comprobación del estado antigua se puede reescribir mediante comprobaciones del estado divididas de la siguiente manera:
Opción | Mantener el mismo comportamiento en las comprobaciones del estado divididas |
---|---|
enable_health_check |
Si se le asigna el valor True o no se establece, configura liveness_check.path y readiness_check.path con una ruta de la aplicación que devuelva 200 OK cuando la aplicación esté en buen estado. |
check_interval_sec |
Asigna el mismo valor a liveness_check.check_interval_sec y readiness_check.check_interval_sec . |
timeout_sec |
Asigna el mismo valor a liveness_check.timeout_sec y readiness_check.timeout_sec . |
unhealthy_threshold |
Asigna el mismo valor a readiness_check.failure_threshold . |
healthy_threshold |
Asigna el mismo valor a liveness_check.success_threshold y readiness_check.success_threshold . |
restart_threshold |
Asigna el mismo valor a liveness_check.failure_threshold . Ten en cuenta que el valor de la opción check_interval_sec multiplicado por la opción failure_threshold es el tiempo que tardará en inhabilitarse una VM que no esté en buen estado. |
Habilitar las comprobaciones del estado divididas
Para migrar de las comprobaciones del estado antiguas a las comprobaciones del estado divididas y evitar que se muestren códigos de estado 5xx
elevados, sigue estos pasos:
Consulta las diferencias importantes entre las comprobaciones de estado antiguas y las divididas.
Convierte las opciones de comprobación de estado antiguas de cada versión de tu aplicación.
También puedes personalizar la sección
liveness_check
oreadiness_check
del archivoapp.yaml
para cada versión. Para ver ejemplos, consulta Comprobaciones de actividad y Comprobaciones de disponibilidad.Ejecuta el siguiente comando:
gcloud app update --split-health-checks --project [YOUR_PROJECT_ID]
Si has usado ajustes personalizados para las comprobaciones del estado antiguas, debes eliminar la sección
health_check
de tu archivoapp.yaml
.Despliega una nueva versión principal de tu aplicación para empezar a usar las comprobaciones de estado de actividad y de disponibilidad.