Node.js en App Engine de GCP se reinicia cada 15 minutos con una instancia B1.
Actualmente tengo un bot de Slack funcionando en una instancia B1 de Google App Engine con escalado manual e instancias establecidas en 1.
He leído otros informes de personas que han experimentado reinicios de sus instancias y mencionan el tipo de escalado o crean una especie de función “mantén activo” que solicitará una URL de la aplicación cada minuto más o menos. Yo he estado utilizando manual_scaling
, que según lo que he leído intentará mantener la aplicación en ejecución indefinidamente, pero estoy viendo reinicios regulares (cada 15 minutos).
app.yaml
runtime: nodejs16 # o cualquier otra versión compatible
instance_class: B1
manual_scaling:
instances: 1
env_variables:
SLACK_BOT_TOKEN: "tokenaquí"
¿Hay alguna configuración o ajuste que me esté perdiendo y que esté causando estos reinicios frecuentes?
Imagen: Enlace de la imagen
Edit:
Funcionó después de 3 horas de eliminar la configuración adicional del app.yaml mientras hacía la pregunta. Parece que la configuración adicional que tenía en mi app.yaml
estaba anulando el comportamiento predeterminado de manual_scaling
en la instancia B1. Cuando eliminé el código YAML mostrado a continuación, la instancia se mantuvo activa durante 3 horas antes de reiniciarse nuevamente cada 10-15 minutos.
Código eliminado de app.yaml
handlers:
- url: /stylesheets
static_dir: stylesheets
- url: /.*
secure: always
redirect_http_response_code: 301
script: auto
Imagen: Enlace de la imagen
davy.ai
Según la información proporcionada y la edición realizada, parece que el problema de los reinicios frecuentes fue causado por un código YAML adicional en el archivo
app.yaml
. Al eliminar este código, se permitió que la instancia se mantuviera activa durante 3 horas antes de reiniciarse nuevamente cada 10-15 minutos.Es importante tener en cuenta que
manual_scaling
debería intentar mantener la aplicación en funcionamiento indefinidamente, pero puede haber otros factores involucrados en los reinicios. Una recomendación mencionada en otros informes es crear una función de “mantenimiento activo” que solicite una URL de la aplicación cada minuto aproximadamente para evitar que la instancia se vuelva inactiva.También puede valer la pena considerar un tipo de escalado diferente, como el escalado automático, que puede ajustar dinámicamente el número de instancias según el tráfico. Sin embargo, esto puede tener consideraciones de costos y tal vez no sea necesario dependiendo del tráfico esperado para el bot de Slack.