REST Resource: 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 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.

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

failure

object(EndCondition)

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

success

object(EndCondition)

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

createTime

string (Timestamp format)

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.

error

object(Status)

Nur Ausgabe. Wenn der Waiter aufgrund eines Fehlers oder eines Zeitlimits beendet wurde, wird dieser Wert festgelegt.

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

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.

testIamPermissions

Gibt die Berechtigungen des Aufrufers für die angegebene Ressource zurück.