

• AWS Systems Manager CloudWatch ダッシュボードは、2026 年 4 月 30 日以降は利用できなくなります。お客様は、これまでと同様に Amazon CloudWatch コンソールを使用して、Amazon CloudWatch ダッシュボードの表示、作成、管理を継続できます。詳細については、「[Amazon CloudWatch ダッシュボードのドキュメント](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)」を参照してください。

# `aws:loop` — オートメーション内のステップを反復処理します。
<a name="automation-action-loop"></a>

このアクションは、オートメーションランブック内のステップのサブセットを反復処理します。`do while` または `for each` スタイルループを選択できます。`do while` ループを作成するには、`LoopCondition` 入力パラメーターを使用します。`for each` ループを作成するには、`Iterators` と `IteratorDataType` 入力パラメーターを使用します。`aws:loop` アクションを使用するときは、`Iterators` または `LoopCondition` 入力パラメータのみを指定してください。最大反復回数は 100 です。

`onCancel` プロパティを使用できるのは、ループ内で定義されたステップのみです。`onCancel` プロパティは `aws:loop` アクションではサポートされていません。`aws:loop` アクションに `onFailure` プロパティを使用することはできますが、これが使用されるのは、ステップを失敗させる予期しないエラーが発生した場合のみです。ループ内のステップに `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
```

------

**Input**  
入力は次のとおりです。

イテレーター  
ステップを反復処理する項目のリスト。最大反復回数は 100 です。  
タイプ: StringList  
必須: いいえ

イテレータ/データタイプ  
`Iterators` のデータ型を指定するオプションのパラメータ。このパラメータの値は、`Iterators` 入力パラメータとともに提供できます。このパラメータ値と `Iterators` を指定しない場合、`LoopCondition` パラメータ値を指定する必要があります。  
タイプ: 文字列  
有効な値: ブール値 \| 整数 \| 文字列 \| StringMap  
デフォルト: 文字列  
必須: いいえ

ループ条件  
`Variable` と評価する演算子条件で構成されます。このパラメータ値を指定しない場合、`Iterators` と `IteratorDataType` パラメータ値を指定する必要があります。`And`、`Not` と `Or` 演算子の組み合わせを使用して、複雑な演算子の評価を使用できます。条件はループ内のステップが完了した後に評価されます。条件が `true` で、`MaxIterations` 値に達していない場合は、ループ内のステップが再び実行されます。オペレータの条件は以下のとおりです。  

**文字列演算子**
+ StringEquals
+ EqualsIgnoreCase
+ StartsWith
+ EndsWith
+ Contains

**数値演算子**
+ NumericEquals
+ NumericGreater
+ NumericLesser
+ NumericGreaterOrEquals
+ NumericLesser
+ NumericLesserOrEquals

**ブール演算子**
+ BooleanEquals
型: StringMap  
必須: いいえ

最大反復回数  
ループ内のステップの最大実行回数。この入力に指定された値に達すると、`LoopCondition` が `true` でも、または `Iterators` パラメータにオブジェクトが残っていても、ループの実行は停止します。  
タイプ: 整数  
有効な値: 1～100  
必須: いいえ

Steps  
ループで実行するステップのリスト。これらはネストされたランブックのように機能します。これらのステップでは、`{{loopStepName.CurrentIteratorValue}}` 構文を使用して `for each` ループの現在のイテレーター値にアクセスできます。`{{loopStepName.CurrentIteration}}` 構文を使用して、両方のループタイプの現在の反復の整数値にアクセスすることもできます。  
タイプ: ステップのリスト  
必須: はいOutput

CurrentIteration  
現在のループ反復を整数で表したもの。反復値は 1 から始まります。  
タイプ: 整数

現在のイテレータ値  
現在のイテレータの値を文字列で表したもの。この出力は `for each` ループ内にのみ存在します。  
タイプ: 文字列