aws:loop – Über Schritte in einer Automatisierung iterieren - AWS Systems Manager

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

aws:loop – Über Schritte in einer Automatisierung iterieren

Diese Aktion wiederholt sich über eine Teilmenge von Schritten in einem Automation-Runbook. Sie können einen Schleifenstil do while oder for each eine Schleife wählen. Verwenden Sie den LoopCondition-Eingabeparameter, um eine do while-Schleife zu erstellen. Verwenden Sie die Eingabeparameter Iterators und IteratorDataType, um eine for each-Schleife zu erstellen. Wenn Sie eine aws:loop-Aktion verwenden, geben Sie nur entweder den Eingabeparameter Iterators oder LoopCondition an. Die maximale Anzahl von Iterationen beträgt 100.

Die onCancel-Eigenschaft kann nur für Schritte definiert werden, die innerhalb einer Schleife definiert sind. Die onCancel-Eigenschaft wird für die aws:loop-Aktion nicht unterstützt.

Beispiele

Im Folgenden finden Sie Beispiele für die Erstellung der verschiedenen Typen von Loop-Aktionen.

do while
name: RepeatMyLambdaFunctionUntilOutputIsReturned action: aws:loop inputs: Steps: - name: invokeMyLambda action: aws:invokeLambdaFunction inputs: FunctionName: LambdaFunctionName outputs: - Name: ShouldRetry Selector: $.Retry Type: Boolean LoopCondition: Variable: "{{ invokeMyLambda.ShouldRetry }}" BooleanEquals: true MaxIterations: 3
for each
name: stopAllInstancesWithWaitTime action: aws:loop inputs: Iterators: "{{ DescribeInstancesStep.InstanceIds }}" IteratorDataType: "String" Steps: - name: stopOneInstance action: aws:changeInstanceState inputs: InstanceIds: - "{{stopAllInstancesWithWaitTime.CurrentIteratorValue}}" CheckStateOnly: false DesiredState: stopped - name: wait10Seconds action: aws:sleep inputs: Duration: PT10S
Eingabe

Die Eingabe ist wie folgt.

Iteratoren

Die Liste der Elemente, über die die Schritte iteriert werden sollen. Die maximale Anzahl von Iteratoren beträgt 100.

Typ: StringList

Erforderlich: Nein

IteratorDataTyp

Ein optionaler Parameter zur Angabe des Datentyps von Iterators. Ein Wert für diesen Parameter kann zusammen mit dem Iterators-Eingabeparameter angegeben werden. Wenn Sie keinen Wert für diesen Parameter und Iterators angeben, müssen Sie einen Wert für den LoopCondition-Parameter angeben.

Typ: Zeichenfolge

Gültige Werte: Boolean | Integer | String | StringMap

Standard: Zeichenfolge

Erforderlich: Nein

LoopCondition

Besteht aus Variable und einer auszuwertenden Operatorbedingung. Wenn Sie keinen Wert für diesen Parameter angeben, müssen Sie einen Wert für die Iterators- und IteratorDataType-Parameter angeben. Sie können komplexe Operatorauswertungen verwenden, indem Sie eine Kombination aus Operatoren And, Not und Or verwenden. Die Bedingung wird bewertet, nachdem die Schritte in der Schleife abgeschlossen sind. Wenn die Bedingung true ist und der MaxIterations-Wert nicht erreicht wurde, werden die Schritte in der Schleife erneut ausgeführt. Die Bedingungen für den Operator lauten wie folgt:

Zeichenfolgenoperationen
  • StringEquals

  • EqualsIgnoreFall

  • StartsWith

  • EndsWith

  • Enthält

Numerische Operationen
  • NumericEquals

  • NumericGreater

  • NumericLesser

  • NumericGreaterOrEquals

  • NumericLesser

  • NumericLesserOrEquals

Boolesche Operation
  • BooleanEquals

Typ: StringMap

Erforderlich: Nein

MaxIterations

Gibt an, wie oft die Schritte in der Schleife maximal ausgeführt werden. Sobald der für diese Eingabe angegebene Wert erreicht ist, stoppt die Schleife, auch wenn LoopCondition immer noch true ist oder im Iterators-Parameter verbleibende Objekte vorhanden sind.

Typ: Ganzzahl

Zulässige Werte: 1–100

Erforderlich: Nein

Schritte

Die Liste der auszuführenden Schritte. Diese funktionieren wie ein verschachteltes Runbook. In diesen Schritten können Sie mithilfe der {{loopStepName.CurrentIteratorValue}}-Syntax auf den aktuellen Iteratorwert für eine for each-Schleife zugreifen. Sie können mithilfe der {{loopStepName.CurrentIteration}}-Syntax auch auf einen Integer-Wert der aktuellen Iteration für beide Schleifentypen zugreifen.

Typ: Liste der Schritte

Erforderlich: Ja

Output
CurrentIteration

Die aktuelle Schleifeniteration als Ganzzahl. Iterationswerte beginnen bei 1.

Typ: Ganzzahl

CurrentIteratorWert

Der Wert des aktuellen Iterators als Zeichenfolge. Diese Ausgabe ist nur in for each-Schleifen vorhanden.

Typ: Zeichenfolge