aws:loop : itérer les étapes d’une automatisation - AWS Systems Manager

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

aws:loop : itérer les étapes d’une automatisation

Cette action itère sur un sous-ensemble d’étapes dans un runbook d’Automatisation. Vous pouvez sélectionner un style boucle do while ou for each. Pour construire une boucle do while, utilisez le paramètre d’entrée LoopCondition. Pour construire une boucle for each, utilisez les paramètres d’entrée Iterators et IteratorDataType. Lorsque vous utilisez une action aws:loop, spécifiez uniquement le paramètre d’entrée Iterators ou LoopCondition. Le nombre maximal d’itérations est de 100.

La propriété onCancel ne peut être définie que pour les étapes définies dans une boucle. La propriété onCancel n’est pas prise en charge pour l’action aws:loop.

Exemples

Les exemples suivants montrent comment construire les différents types d’actions de boucle.

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
Entrée

L'entrée est comme suit.

Itérateurs

La liste des éléments sur lesquels les étapes doivent être itérées. Le nombre maximal d’itérateurs est de 100.

Type : StringList

Obligatoire : non

IteratorDataType

Un paramètre facultatif permettant de spécifier le type de données du Iterators. Une valeur pour ce paramètre peut être fournie en même temps que le paramètre d’entrée Iterators. Si vous ne spécifiez aucune valeur pour ce paramètre et Iterators, vous devez alors spécifier une valeur pour le paramètre LoopCondition.

Type : chaîne

Valeurs valides : booléen | entier | chaîne | StringMap

Par défaut : String

Obligatoire : non

LoopCondition

Comprend une Variable et une condition de l’opérateur à évaluer. Si vous ne spécifiez aucune valeur pour ce paramètre, vous devez alors spécifier des valeurs pour les paramètres Iterators et IteratorDataType. Vous pouvez utiliser des évaluations d’opérateurs complexes en combinant les opérateurs And, Not et Or. La condition est évaluée une fois les étapes de la boucle terminées. Si la condition est true et que la valeur MaxIterations n’a pas été atteinte, les étapes de la boucle sont à nouveau exécutées. Les conditions de l’opérateur sont les suivantes :

Opérations de chaîne
  • StringEquals

  • EqualsIgnoreÉtui

  • StartsWith

  • EndsWith

  • Contains

Opérations numériques
  • NumericEquals

  • NumericGreater

  • NumericLesser

  • NumericGreaterOrEquals

  • NumericLesser

  • NumericLesserOrEquals

Opération booléenne
  • BooleanEquals

Type : StringMap

Obligatoire : non

MaxIterations

Le nombre maximal de fois où les étapes de la boucle sont exécutées. Une fois que la valeur spécifiée pour cette entrée est atteinte, la boucle cesse de fonctionner même si LoopCondition est encore true ou s’il reste des objets dans le paramètre Iterators.

Type : entier

Valeurs valides : de 1 à 100

Obligatoire : non

Étapes

Liste des étapes à exécuter dans la boucle. Elles fonctionnent comme un runbook imbriqué. Au cours de ces étapes, vous pouvez accéder à la valeur actuelle de l’itérateur pour une boucle for each à l’aide de la syntaxe {{loopStepName.CurrentIteratorValue}}. Vous pouvez également accéder à une valeur entière de l’itération en cours pour les deux types de boucle à l’aide de la syntaxe {{loopStepName.CurrentIteration}}.

Type : liste des étapes

Obligatoire : oui

Sortie
CurrentIteration

L’itération de boucle en cours sous forme d’entier. Valeur des itérations commençant à 1.

Type : entier

CurrentIteratorValeur

Valeur de l’itérateur actuel sous forme de chaîne. Cette sortie n’est présente que dans les boucles for each.

Type : chaîne