App Engine Standard Auto Scaling: ¿Cómo detener la versión anterior durante la implementación?

App Engine Standard Auto Scaling: ¿Cómo detener la versión anterior durante la implementación?

Problema:

Estoy implementando un servicio estándar de appengine: nodejsv10. Sin embargo, después de que el tráfico se migra a la nueva versión, la versión anterior sigue ejecutándose y el recuento de instancias aparece como 2 o 1. Este sigue siendo el caso de varias implementaciones durante la semana pasada que no han recibido tráfico durante más de 24 horas. horas (así que no creo que sea un problema de actualización retrasada de la consola).

No quiero que me facturen por estas instancias porque no las necesito. Y tener que eliminar manualmente estas versiones antiguas parece una experiencia de usuario tonta.

Comando de implementación:gcloud beta app deploy

aplicación.yaml

env: standard
instance_class: F4
inbound_services:
  - warmup
automatic_scaling:
  min_idle_instances: 1
  max_idle_instances: 1
  min_pending_latency: automatic
  max_pending_latency: automatic
  max_concurrent_requests: 15
  min_instances: 1

Respuesta1

Después de leer más la documentación, creo que encontré la solución. Lo quité min_instancesy lo dejé adentro min_idle_instances. Dado que min_instancesobliga a que las instancias estén activas independientemente del tráfico y min_idle_instancessolo se aplica a la versión que recibe la mayor parte del tráfico. Estoy probando esto, informaré si no funciona.

https://cloud.google.com/appengine/docs/standard/nodejs/config/appref#automatic_scaling

min_instancias

La cantidad mínima de instancias que App Engine debe crear para esta versión del módulo. Estas instancias brindan tráfico cuando llegan solicitudes y continúan brindando tráfico incluso cuando se inician instancias adicionales según sea necesario para manejar el tráfico. Tenga en cuenta que se le cobrará por la cantidad de instancias especificadas, ya sea que reciban tráfico o no.

min_idle_instances

La cantidad de instancias que se mantendrán en ejecución y listas para atender el tráfico. Tenga en cuenta que se le cobrará por la cantidad de instancias especificadas, ya sea que reciban tráfico o no. Esta configuración solo se aplica a la versión que recibe la mayor parte del tráfico.

Respuesta2

Las instancias estándar de App Engine no se pueden detener como se mencionóaquía menos que esté utilizando el escalado manual o básico. Esto significaría que si por alguna razón alguien puede acceder a la URL de su versión anterior, iniciará una instancia para atender dicha solicitud.

Mi recomendación sería cambiar a un tipo diferente de escala (personalmente elegiríaEscalado básicopara su caso) ya que podría detener las instancias. De lo contrario, tendría que eliminar las versiones anteriores o correr el riesgo de que una instancia se ejecute en una versión anterior sin su conocimiento debido a alguna solicitud aleatoria a una versión anterior.

Espero que esta información te sirva de ayuda.

información relacionada