Auf dieser Seite erhalten Sie eine Übersicht über die Komponente Runtime Configurator und die damit verbundenen Schlüsselkonzepte. Wie Sie eine RuntimeConfig-Ressource erstellen, erfahren Sie unter Erstellen und Löschen von RuntimeConfig-Ressourcen.
Was ist Runtime Configurator?
Runtime Configurator erlaubt es Ihnen, Daten als Hierarchie von Schlüssel/Wert-Paaren in der Google Cloud Platform zu definieren und zu speichern. Sie können diese Schlüssel/Wert-Paare verwenden, um:
- Dienste dynamisch zu konfigurieren
- Dienststatus zu kommunizieren
- Benachrichtigungen über Änderungen an Daten zu verschicken
- Informationen zwischen verschiedenen Dienstebenen zu teilen
Stellen Sie sich beispielsweise ein Szenario vor, in dem Sie einen Cluster an Knoten haben, der einen Startvorgang ausführt. Während des Starts können Sie Ihre Knoten so konfigurieren, dass Sie ihren Status an Runtime Configurator weitergeben. Weiterhin haben Sie eine Anwendung, die Anfragen an Runtime Configurator stellt und je nach Status Ihrer Knoten bestimmte Aufgaben durchführt.
Runtime Configurator bietet auch einen Watcher-Dienst und einen Waiter-Dienst. Der Watcher-Dienst beobachtet ein bestimmtes Schlüsselpaar und meldet, wenn sich der Wert des Schlüsselpaars ändert. Der Waiter-Dienst wartet hingegen auf eine bestimmte Endbedingung und gibt eine Antwort zurück, wenn diese Endbedingung erfüllt wurde.
Sie können Runtime Configurator mithilfe der gcloud CLI oder als eigenständige API nutzen.
Konzepte
Config-Ressource
Eine Config-Ressource beinhaltet eine hierarchische Liste an Variablen. Sie können verschiedene Konfigurationen für verschiedene Zwecke erstellen. Beispielsweise können Sie Konfigurationen nach Umgebung (prod, dev, test), der Ebene der Anwendung oder des Dienstes (Backend, Frontend) oder nach Entitäten (eine Konfiguration pro Nutzer Ihrer Anwendung) aufteilen.
Variablen
Variablen sind Schlüssel/Wert-Paare, die zu einer RuntimeConfig-Ressource gehören. Variablen-Schlüssel haben das folgende Format:
projects/[project_id]/configs/[CONFIG_ID]/variables/[VARIABLE_NAME]
Sie können Variablenwerte festlegen, beziehen und beobachten, um Informationen zu Ihren Anwendungen zu kommunizieren, um einen abgeschlossenen Zustand zu signalisieren, um Benachrichtigungen über Datenveränderungen zu verschicken und mehr. Variablen sind hierarchisch, also könnte Ihr Variablenschlüssel mehrere Ebenen haben. Ein Variablenschlüssel könnte beispielsweise so aussehen:
webserver-1/users/name webserver-1/users/favorite_color
Watcher
Mit der Methode
watch()
können Sie eine Variable beobachten und erfahren, wenn sich die Variable ändert, der Watcher das Zeitlimit überschreitet oder der Watcher gelöscht wird. Die Funktionwatch()
verwenden Sie, um Anwendungen dynamisch anhand von Änderungen in Ihren Daten zu konfigurieren.Waiter
Wenn Sie eine Waiter-Ressource erstellen, um ein bestimmtes Pfadpräfix zu beobachten, antwortet der Waiter, sobald die Variablen unter dem Präfix eine gewisse Anzahl erreicht haben. In diesem Zusammenhang spricht man von Kardinalitätsbedingung.
Wenn Sie beispielsweise für den Pfad
/foo
eine Bedingung und die Anzahl der Pfade auf 2 festlegen, erfüllt die folgende Konfiguration die Bedingung:/foo/variable1 = "value1"
/foo/variable2 = "value2"
/bar/variable3 = "value3" # Not /foo path
Ein Waiter hat sowohl eine Fehlschlags- als auch eine Erfolgsbedingung, die Sie festlegen können.
Nachdem Sie einen Waiter erstellt haben, gibt der Dienst ein Vorgangsobjekt zurück, das Sie zum Abschluss prüfen. Der Vorgang ist abgeschlossen, wenn einer dieser Faktoren zutrifft:
- Die Bedingung
success
ist erfüllt. - Die Bedingung
failure
ist erfüllt. - Der Waiter erreicht das Zeitlimit, das in der ursprünglichen Anfrage festgelegt wurde.
Ein Waiter ist ideal für Startszenarien, bei denen Sie eine Bereitstellung pausieren müssen, bis eine gewisse Anzahl an Diensten ausgeführt wird.
Weitere Informationen
- RuntimeConfig-Ressource erstellen
- Daten festlegen und abrufen
- Eine bestimmte Variable beobachten
- Einen Waiter erstellen
- Weitere Informationen in der v1beta1-Referenz
- Mehr über Kontingente für Runtime Configurator erfahren