aws:loop - 迭代自動化中的步驟 - AWS Systems Manager

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

aws:loop - 迭代自動化中的步驟

此動作會迭代自動化執行手冊中的步驟子集。您可以選擇 do whilefor each 樣式迴圈。若要建構 do while 迴圈,請使用 LoopCondition 輸入參數。若要建構 for each 迴圈,請使用 IteratorsIteratorDataType 輸入參數。使用 aws:loop 動作時,僅指定 IteratorsLoopCondition 輸入參數。迭代的數量的上限為 100。

onCancel屬性只能用於迴圈內定義的步驟。aws:loop 動作不支援 onCancel 屬性。該onFailure屬性可用於aws:loop動作,但只有在發生非預期錯誤導致步驟失敗時,才會使用該屬性。如果您為迴圈內的步驟定義onFailure屬性,aws:loop動作會繼承這些屬性,並在發生失敗時做出相應的反應。

範例

下列是如何建構不同類型迴圈動作的範例。

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
輸入

輸入如下。

迭代器

要重複執行的步驟的項目清單。迭代器的數量的上限為 100。

類型: StringList

必要:否

IteratorDataType

用來指定 Iterators 的資料類型的選用參數。此參數的值可與 Iterators 輸入參數一起提供。如果您不指定此參數和 Iterators 的值,則您必須指定 LoopCondition 參數的值。

類型:字串

有效值:布爾 | 整數 | 字符串 | StringMap

預設:字串

必要:否

LoopCondition

包含 Variable 和要評估的運算子條件。如果您不指定此參數的值,則您必須指定 IteratorsIteratorDataType 參數的值。您可以透過 AndNotOr 運算子的組合來使用複雜的運算子評估。在迴圈中的步驟完成後,就會評估條件。如果條件為 true 且尚未達到 MaxIterations 值,則迴圈中的步驟會再次執行。運算子條件如下:

字串運算
  • StringEquals

  • EqualsIgnoreCase

  • StartsWith

  • EndsWith

  • 包含

數值運算
  • NumericEquals

  • NumericGreater

  • NumericLesser

  • NumericGreaterOrEquals

  • NumericLesser

  • NumericLesserOrEquals

布林運算
  • BooleanEquals

類型: StringMap

必要:否

MaxIterations

迴圈中步驟執行的最大次數。達到此輸入指定的值後,即使 LoopCondition 仍然 true,或 Iterators 參數中仍有剩餘物件,迴圈也會停止執行。

類型:整數

有效值:1 - 100

必要:否

步驟

在迴圈中執行的步驟清單。這些函數就像一個巢狀的執行手冊。在這些步驟中,您可以使用語法 for each,存取 {{loopStepName.CurrentIteratorValue}} 迴圈的目前迭代器值。您還可以使用語法 {{loopStepName.CurrentIteration}},存取這兩個迴圈類型的目前迭代的整數值。

類型:步驟清單

必要:是

輸出
CurrentIteration

將目前迴圈迭代作為整數。迭代值從 1 開始。

類型:整數

CurrentIteratorValue

做為字串的目前迭代器的值。此輸出僅存在於 for each 迴圈中。

類型:字串