

• La AWS Systems Manager CloudWatch dashboard non sarà più disponibile dopo il 30 aprile 2026. I clienti possono continuare a utilizzare la CloudWatch console Amazon per visualizzare, creare e gestire le proprie CloudWatch dashboard Amazon, proprio come fanno oggi. Per ulteriori informazioni, consulta la [documentazione di Amazon CloudWatch Dashboard](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html). 

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# `aws:loop`: intera sui passaggi di un'automazione
<a name="automation-action-loop"></a>

Questa operazione esegue un'iterazione su un sottoinsieme di passaggi in un runbook Automation. È possibile scegliere un ciclo di stile `do while` o `for each`. Per costruire un ciclo `do while`, utilizza il parametro di input `LoopCondition`. Per costruire un ciclo `for each`, utilizza i parametri di input `Iterators` e `IteratorDataType`. Quando utilizzi un'azione `aws:loop`, specifica solo il parametro di input `Iterators` o `LoopCondition`. Il numero massimo di iterazioni è 100.

La proprietà `onCancel` può essere utilizzata solo per i passaggi definiti all'interno di un ciclo. La proprietà `onCancel` non è supportata per l'azione `aws:loop`. La proprietà `onFailure` può essere utilizzata per un'operazione `aws:loop`, ma solo se si verifica un errore imprevisto che impedisce la corretta esecuzione del passaggio. Se si definiscono le proprietà `onFailure` per i passaggi all'interno di un ciclo, l'operazione `aws:loop` eredita tali proprietà e reagisce di conseguenza quando si verifica un errore.

**Esempi**  
Di seguito sono riportati alcuni esempi di come costruire i diversi tipi di operazioni di un ciclo.

------
#### [ 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**  
Di seguito è riportato l'input.

Iterators  
L'elenco degli elementi per i passaggi su cui eseguire l'iterazione. Il numero massimo di iteratori è 100.  
Tipo: StringList  
Obbligatorio: no

IteratorDataType  
Un parametro facoltativo per specificare il tipo di dati di `Iterators`. Un valore per questo parametro può essere fornito insieme al parametro di input `Iterators`. Se non si specifica un valore per questo parametro e `Iterators`, sarà necessario specificare un valore per il parametro `LoopCondition`.  
Tipo: String  
Valori validi: Boolean \$1 Integer \$1 String \$1 StringMap  
Predefinito: String  
Obbligatorio: no

LoopCondition  
Costituito da una `Variable` e una condizione dell'operatore da valutare. Se non si specifica un valore per questo parametro, allora sarà necessario specificare i valori per i parametri `Iterators` e `IteratorDataType`. È possibile utilizzare valutazioni complesse degli operatori utilizzando una combinazione degli operatori `And`, `Not` e `Or`. La condizione viene valutata dopo il completamento dei passaggi del ciclo. Se la condizione è `true` e il valore `MaxIterations` non è stato raggiunto, i passaggi del ciclo saranno eseguiti nuovamente. Le condizioni dell'operatore sono le seguenti:  

**Operazioni di stringa**
+ StringEquals
+ EqualsIgnoreCase
+ StartsWith
+ EndsWith
+ Contiene

**Operazioni numeriche**
+ NumericEquals
+ NumericGreater
+ NumericLesser
+ NumericGreaterOrEquals
+ NumericLesser
+ NumericLesserOrEquals

**Operazioni booleane**
+ BooleanEquals
Tipo: StringMap  
Obbligatorio: no

MaxIterations  
Il numero massimo di volte che vengono eseguiti i passaggi del ciclo. Una volta raggiunto il valore specificato per questo input, il ciclo smette di funzionare anche se `LoopCondition` è ancora `true` o se ci sono oggetti rimanenti nel parametro `Iterators`.  
Tipo: numero intero  
Valori validi: 1-100  
Obbligatorio: no

Fasi  
L'elenco di passaggi da eseguire nel ciclo. Funzionano come un runbook nidificato. In questi passaggi è possibile accedere al valore corrente dell'iteratore per un ciclo `for each` utilizzando la sintassi `{{loopStepName.CurrentIteratorValue}}`. È inoltre possibile accedere a un valore intero dell'iterazione corrente per entrambi i tipi di ciclo utilizzando la sintassi `{{loopStepName.CurrentIteration}}`.  
Tipo: elenco di passaggi  
Obbligatorio: sìOutput

CurrentIteration  
L'iterazione del ciclo corrente come numero intero. I valori di iterazione iniziano da 1.  
Tipo: numero intero

CurrentIteratorValue  
Il valore dell'iteratore corrente come stringa. Questo output è presente solo nei cicli `for each`.  
Tipo: String