Auto Scaling padrão do App Engine - Como interromper a versão anterior na implantação?

Auto Scaling padrão do App Engine - Como interromper a versão anterior na implantação?

Problema:

Estou implantando um serviço padrão do appengine - nodejsv10. No entanto, depois que o tráfego é migrado para a nova versão, a versão antiga ainda permanece em execução, com a contagem de instâncias listada como 2 ou 1. Esse ainda é o caso de várias implantações na semana passada que não receberam tráfego por mais de 24 horas (então não acho que seja um problema de atualização atrasada do console).

Não quero ser cobrado por essas instâncias, pois não preciso delas. E ter que excluir manualmente essas versões antigas parece uma experiência boba para o usuário.

Comando de implantação:gcloud beta app deploy

app.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

Responder1

Depois de ler mais a documentação, acho que encontrei a solução. Eu removi min_instancese deixei em min_idle_instances. Uma vez que min_instancesforça as instâncias a funcionarem independentemente do tráfego e min_idle_instancesse aplica apenas à versão que recebe a maior parte do tráfego. Estou testando isso, reportarei se não funcionar.

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

min_instances

O número mínimo de instâncias que o App Engine deve criar para esta versão do módulo. Essas instâncias atendem o tráfego quando as solicitações chegam e continuam a atender o tráfego mesmo quando instâncias adicionais são iniciadas conforme necessário para lidar com o tráfego. Observe que você será cobrado pelo número de instâncias especificadas, estejam elas recebendo tráfego ou não.

min_idle_instances

O número de instâncias a serem mantidas em execução e prontas para atender o tráfego. Observe que você será cobrado pelo número de instâncias especificadas, estejam elas recebendo tráfego ou não. Essa configuração se aplica apenas à versão que recebe a maior parte do tráfego.

Responder2

As instâncias padrão do App Engine não podem ser interrompidas conforme mencionadoaquia menos que você esteja usando escalabilidade manual ou básica. Isso significaria que se por algum motivo alguém conseguir acessar a URL da sua versão anterior, ele iniciará uma instância para atender a referida solicitação.

Minha recomendação seria mudar para um tipo diferente de escala (pessoalmente eu escolheriaDimensionamento Básicopara o seu caso), pois você seria capaz de interromper as instâncias. Caso contrário, você teria que excluir as versões anteriores ou correria o risco de uma instância ser executada em uma versão antiga sem o seu conhecimento devido a alguma solicitação aleatória para uma versão mais antiga.

Espero que você ache esta informação útil.

informação relacionada