App Engine Standard Auto Scaling – Wie stoppe ich die vorherige Version bei der Bereitstellung?

App Engine Standard Auto Scaling – Wie stoppe ich die vorherige Version bei der Bereitstellung?

Problem:

Ich stelle einen AppEngine-Standarddienst bereit – nodejsv10. Nachdem der Datenverkehr jedoch auf die neue Version migriert wurde, läuft die alte Version weiterhin, wobei die Anzahl der Instanzen mit 2 oder 1 angegeben wird. Dies ist immer noch der Fall bei mehreren Bereitstellungen in der letzten Woche, bei denen seit mehr als 24 Stunden kein Datenverkehr empfangen wurde (ich glaube also nicht, dass es sich um ein Problem mit verzögerter Aktualisierung der Konsole handelt).

Ich möchte für diese Instanzen keine Rechnungen erhalten, da ich sie nicht benötige. Und diese alten Versionen manuell löschen zu müssen, erscheint mir als alberne Benutzererfahrung.

Bereitstellungsbefehl: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

Antwort1

Nachdem ich die Dokumentation genauer gelesen habe, glaube ich, dass ich die Lösung gefunden habe. Ich habe entfernt min_instancesund drin gelassen min_idle_instances. Da min_instancesdie Instanzen unabhängig vom Datenverkehr aktiv bleiben, min_idle_instancesgilt dies nur für die Version, die den meisten Datenverkehr empfängt. Ich teste dies und werde berichten, wenn es nicht funktioniert.

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

min_instances

Die Mindestanzahl von Instanzen, die App Engine für diese Modulversion erstellen muss. Diese Instanzen verarbeiten Datenverkehr, wenn Anfragen eingehen, und verarbeiten den Datenverkehr auch dann weiter, wenn bei Bedarf weitere Instanzen gestartet werden, um den Datenverkehr abzuwickeln. Beachten Sie, dass Ihnen die angegebene Anzahl von Instanzen in Rechnung gestellt wird, unabhängig davon, ob sie Datenverkehr empfangen oder nicht.

min_idle_instances

Die Anzahl der Instanzen, die ausgeführt werden und für den Datenverkehr bereit sein sollen. Beachten Sie, dass Ihnen die angegebene Anzahl von Instanzen in Rechnung gestellt wird, unabhängig davon, ob sie Datenverkehr empfangen oder nicht. Diese Einstellung gilt nur für die Version, die den meisten Datenverkehr empfängt.

Antwort2

App Engine Standardinstanzen können wie erwähnt nicht gestoppt werdenHieres sei denn, Sie verwenden entweder die manuelle oder die einfache Skalierung. Dies würde bedeuten, dass, wenn jemand aus irgendeinem Grund die URL Ihrer vorherigen Version erreichen kann, eine Instanz gestartet wird, um die Anfrage zu erfüllen.

Meine Empfehlung wäre, auf eine andere Skalierungsart umzusteigen (persönlich würde ich wählenGrundlegende Skalierungfür Ihren Fall), da Sie die Instanzen stoppen könnten. Andernfalls müssten Sie die vorherigen Versionen löschen oder das Risiko eingehen, dass eine Instanz aufgrund einer zufälligen Anforderung an eine ältere Version ohne Ihr Wissen auf einer alten Version läuft.

Ich hoffe, Sie finden diese Informationen hilfreich.

verwandte Informationen