Sammlung: projects.configs.waiters

Ressource: Waiter

Eine Waiter-Ressource wartet drauf, dass eine Endbedingung innerhalb einer RuntimeConfig-Ressource erfüllt ist, und gibt dann etwas zurück. Angenommen sie haben beispielsweise ein verteiltes System, bei dem jeder Knoten auf eine Variablenressource schreibt, um die Bereitschaft des Knotens als Teil des Startvorgangs anzuzeigen.

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.

JSON-Darstellung

{
  "name": string,
  "timeout": string,
  "failure": {
    object(EndCondition)
  },
  "success": {
    object(EndCondition)
  },
  "createTime": string,
  "done": boolean,
  "error": {
    object(Status)
  },
}
Felder
name

string

Der Name der Waiter-Ressource im Format:


projects/[PROJECT_ID]/configs/[CONFIG_NAME]/waiters/[WAITER_NAME]

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.

timeout

string (Duration format)

[Erforderlich] Gibt die Zeitüberschreitung des Waiters in Sekunden an, beginnend ab dem Zeitpunkt des Aufrufs der waiters().create-Methode. Wenn die Zeit abläuft, bevor die Bedingungen für den Erfolg oder das Fehlschlagen eintreten, schlägt der Waiter fehl und gibt als error-Code DEADLINE_EXCEEDED an.

Eine Dauer in Sekunden, mit bis zu neun Nachkommastellen, die durch s beendet wird. Beispiel: "3.5s".

failure

object(EndCondition)

[Optional] Die Bedingung für das Fehlschlagen des Waiters. Falls die Bedingung erfüllt wird, wird done als true angegeben und der error-Code als ABORTED. Falls beide Bedingungen erfüllt sind, wird ein Fehler angezeigt. Dieser Wert ist optional, wenn keine Bedingung für das Fehlschlagen angegeben wird, ist das einzige Fehlerszenario eine Zeitüberschreitung.

success

object(EndCondition)

[Benötigt] Die Erfolgsbedingung. Falls diese Bedingung erfüllt wird, wird done als true angegeben. Der error-Wert wird nicht angegeben. Die Bedingung für das Fehlschlagen hat Vorrang vor der Erfolgsbedingung. Falls beide Bedingungen erfüllt werden, wird ein Fehler angezeigt.

createTime

string (Timestamp format)

[Nur Ausgabe] Der Zeitpunkt zu dem die Waiter-Ressource erstellt wurde. Durch das Hinzufügen des Werts für timeout zu diesem Zeitpunkt wird der Zeitpunkt für die Zeitüberschreitung des Waiters festgelegt.

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, bedeutet das, dass der Waiter noch auf die Erfüllung einer Bedingung wartet.

"true" bedeutet, dass der Waiter abgeschlossen ist. Wenn der Waiter wegen einer Zeitüberschreitung oder einem Fehler abgeschlossen ist, wird error angegeben.

error

object(Status)

[Nur Ausgabe] Wenn der Waiter wegen einem Fehler oder einer Zeitüberschreitung beendet ist, wird dieser Wert angegeben.

Endbedingung

Die Bedingung, auf die eine Waiter-Ressource wartet.

JSON-Darstellung

{
  "cardinality": {
    object(Cardinality)
  },
}
Felder
cardinality

object(Cardinality)

Die Kardinalität der EndCondition.

Kardinalität

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 bestimmen, bei der der path als /foo und die Anzahl als 2 angegeben ist, erfüllen die folgenden Variablen die Bedingungen in einer RuntimeConfig-Ressource:

  • /foo/variable1 = "value1"
  • /foo/variable2 = "value2"
  • /bar/variable3 = "value3"

Sie würden die gleiche Bedingung jedoch nicht erfüllen, wenn die number als 3 angegeben ist, da nur 2 Pfade 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. Zum Beispiel /foo.

number

number

Die Zahlenvariablen unter dem path, die vorhanden sein müssen, um diese Bedingung zu erfüllen. Wenn keine Angabe gemacht wird, ist der Standardwert 1.

Methoden

create

Erstellt eine Waiter-Ressource.

delete

Löscht den Waiter mit dem angegebenen Namen.

get

Ruft Informationen über einen einzelnen Waiter ab.

list

Listet Waiter in der angegebenen Konfiguration auf.