Eine Waiter-Ressource wartet drauf, dass eine Endbedingung innerhalb einer RuntimeConfig-Ressource erfüllt ist, und gibt dann etwas zurück. Angenommen, Sie haben ein verteiltes System, in dem jeder Knoten in eine Variable schreibt, die die Bereitschaft des Knotens im Rahmen des Startvorgangs angibt.
Sie konfigurieren dann eine Waiter-Ressource mit der Erfolgsbedingung, zu warten, bis eine gewisse Anzahl an Knoten erreicht ist. Danach führt ihre Anwendung einen beliebigen Code aus, nachdem die Bedingung erfüllt wurde und die Rückgabe des Waiters erfolgt ist.
Nachdem eine Waiter-Ressource erstellt wurde, lässt sie sich nicht mehr ändern.
Mehr Informationen über die Verwendung von Waitern erfahren Sie in der Dokumentation Einen Waiter erstellen.
Die [PROJECT_ID] muss eine gültige Google Cloud Projekt-ID sein, der [CONFIG_NAME] muss eine gültige RuntimeConfig-Ressource sein, der [WAITER_NAME] muss der Elementspezifikation RFC 1035 entsprechen und die Länge von [WAITER_NAME] muss weniger als 64 Byte betragen.
Nachdem Sie eine Waiter-Ressource erstellt haben, können Sie den Namen der Ressource nicht mehr ändern.
[Erforderlich] Gibt das Zeitlimit des Waiter in Sekunden an, beginnend mit dem Zeitpunkt, an dem die waiters().create-Methode aufgerufen wird. Wenn diese Zeit verstreicht, bevor die Bedingungen für Erfolg oder Fehlschlag erfüllt sind, schlägt der Waiter fehl und setzt den error-Code auf DEADLINE_EXCEEDED.
Dauer in Sekunden mit bis zu neun Nachkommastellen und einem 's' an letzter Stelle. Beispiel: "3.5s".
[Optional] Die Bedingung für das Fehlschlagen des Waiters. Wenn diese Bedingung erfüllt ist, wird done auf true und der error-Code auf ABORTED gesetzt. Die Bedingung für das Fehlschlagen hat Vorrang vor der Erfolgsbedingung. Falls beide Bedingungen erfüllt werden, wird ein Fehler angezeigt. Dieser Wert ist optional, wenn keine Bedingung für das Fehlschlagen angegeben wird, ist das einzige Fehlerszenario eine Zeitüberschreitung.
[Benötigt] Die Erfolgsbedingung. Wenn diese Bedingung erfüllt ist, wird done auf true gesetzt und der Wert für error bleibt nicht festgelegt. Die Bedingung für das Fehlschlagen hat Vorrang vor der Erfolgsbedingung. Falls beide Bedingungen erfüllt werden, wird ein Fehler angezeigt.
Nur Ausgabe. Der Zeitpunkt, zu dem diese Waiter-Ressource erstellt wurde. Wenn Sie diesem Moment den Wert von timeout hinzufügen, ergibt sich die Zeitüberschreitung für den Waiter.
Ein Zeitstempel im Format "RFC3339 UTC 'Zulu'" in Nanosekunden. Beispiel: "2014-10-02T15:01:23.045123456Z".
done
boolean
Nur Ausgabe. Wenn der Wert false ist, wartet der Waiter noch darauf, dass eine seiner Bedingungen erfüllt wird.
"true" bedeutet, dass der Waiter abgeschlossen ist. Wenn der Waiter aufgrund eines Zeitlimits oder eines Fehlers beendet wurde, wird error festgelegt.
Eine Kardinalitätsbedingung für die Waiter-Ressource. Eine Kardinalitätsbedingung ist erfüllt, wenn eine Anzahl an Variablen unter einem bestimmten Pfadpräfix eine vordefinierte Zahl erreicht. Wenn Sie beispielsweise eine Kardinalitätsbedingung festlegen, bei der path auf /foo und die Anzahl der Pfade auf 2 festgelegt ist, erfüllen die folgenden Variablen in einer RuntimeConfig-Ressource die Bedingung:
/foo/variable1 = "value1"
/foo/variable2 = "value2"
/bar/variable3 = "value3"
Mit number = 3 würde die Bedingung jedoch nicht erfüllt, da es nur zwei Pfade gibt, die mit /foo beginnen. Kardinalitätsbedingungen sind rekursiv, alle Teilbäume unter dem angegebenen Pfadpräfix werden einbezogen.
JSON-Darstellung
{"path": string,"number": number}
Felder
path
string
Das Stammverzeichnis des Teilbaums der Variable, das überwacht werden soll. Beispiel: /foo.
number
number
Die Anzahl der Variablen unter path, die vorhanden sein müssen, damit diese Bedingung erfüllt ist. Wenn keine Angabe gemacht wird, ist der Standardwert 1.
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Schwer verständlich","hardToUnderstand","thumb-down"],["Informationen oder Beispielcode falsch","incorrectInformationOrSampleCode","thumb-down"],["Benötigte Informationen/Beispiele nicht gefunden","missingTheInformationSamplesINeed","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2025-03-04 (UTC)."],[[["\u003cp\u003eA Waiter resource monitors a RuntimeConfig resource, waiting for a specified success condition to be met before returning.\u003c/p\u003e\n"],["\u003cp\u003eWaiters have a timeout period and can also be configured with a failure condition, which takes precedence over the success condition, causing the waiter to fail if both are met.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eEndCondition\u003c/code\u003e for a Waiter is defined by a \u003ccode\u003eCardinality\u003c/code\u003e, which checks if a certain number of variables exist under a specific path prefix in the RuntimeConfig.\u003c/p\u003e\n"],["\u003cp\u003eCardinality conditions are recursive and count all subtrees under a specified path, and the \u003ccode\u003enumber\u003c/code\u003e field defaults to 1 if not set.\u003c/p\u003e\n"],["\u003cp\u003eYou can create, delete, get, list, and check permissions on a waiter with the various methods provided.\u003c/p\u003e\n"]]],[],null,["# REST Resource: projects.configs.waiters\n\n- [Resource: Waiter](#Waiter)\n - [JSON representation](#Waiter.SCHEMA_REPRESENTATION)\n- [EndCondition](#EndCondition)\n - [JSON representation](#EndCondition.SCHEMA_REPRESENTATION)\n- [Cardinality](#Cardinality)\n - [JSON representation](#Cardinality.SCHEMA_REPRESENTATION)\n- [Methods](#METHODS_SUMMARY)\n\nResource: Waiter\n----------------\n\nA Waiter resource waits for some end condition within a RuntimeConfig resource to be met before it returns. For example, assume you have a distributed system where each node writes to a Variable resource indicating the node's readiness as part of the startup process.\n\nYou then configure a Waiter resource with the success condition set to wait until some number of nodes have checked in. Afterwards, your application runs some arbitrary code after the condition has been met and the waiter returns successfully.\n\nOnce created, a Waiter resource is immutable.\n\nTo learn more about using waiters, read the [Creating a Waiter](/deployment-manager/runtime-configurator/creating-a-waiter) documentation.\n\nEndCondition\n------------\n\nThe condition that a Waiter resource is waiting for.\n\nCardinality\n-----------\n\nA Cardinality condition for the Waiter resource. A cardinality condition is met when the number of variables under a specified path prefix reaches a predefined number. For example, if you set a Cardinality condition where the `path` is set to `/foo` and the number of paths is set to `2`, the following variables would meet the condition in a RuntimeConfig resource:\n\n- `/foo/variable1 = \"value1\"`\n- `/foo/variable2 = \"value2\"`\n- `/bar/variable3 = \"value3\"`\n\nIt would not satisfy the same condition with the `number` set to `3`, however, because there is only 2 paths that start with `/foo`. Cardinality conditions are recursive; all subtrees under the specific path prefix are counted."]]