Sélectionner vos préférences de cookies

Nous utilisons des cookies essentiels et des outils similaires qui sont nécessaires au fonctionnement de notre site et à la fourniture de nos services. Nous utilisons des cookies de performance pour collecter des statistiques anonymes afin de comprendre comment les clients utilisent notre site et d’apporter des améliorations. Les cookies essentiels ne peuvent pas être désactivés, mais vous pouvez cliquer sur « Personnaliser » ou « Refuser » pour refuser les cookies de performance.

Si vous êtes d’accord, AWS et les tiers approuvés utiliseront également des cookies pour fournir des fonctionnalités utiles au site, mémoriser vos préférences et afficher du contenu pertinent, y compris des publicités pertinentes. Pour accepter ou refuser tous les cookies non essentiels, cliquez sur « Accepter » ou « Refuser ». Pour effectuer des choix plus détaillés, cliquez sur « Personnaliser ».

Utilisez des instructions conditionnelles dans les étapes de votre flux de travail

Mode de mise au point
Utilisez des instructions conditionnelles dans les étapes de votre flux de travail - EC2 Image Builder

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.

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.

Les instructions conditionnelles commencent par l'attribut du document de if déclaration. Le but ultime de l'ifinstruction est de déterminer s'il faut exécuter l'action de l'étape ou l'ignorer. Si l'ifinstruction est résolue partrue, l'action de l'étape est exécutée. Si le problème est résolufalse, Image Builder ignore l'action de l'étape et enregistre le statut de l'étape SKIPPED dans le journal.

L'ifinstruction prend en charge les instructions de branchement (and,or) et les modificateurs conditionnels (not). Il prend également en charge les opérateurs de comparaison suivants qui effectuent des comparaisons de valeurs (égal, inférieur à, supérieur à) en fonction des types de données qu'il compare (chaîne ou nombre).

Opérateurs de comparaison pris en charge
  • booleanEquals

  • numberEquals

  • numberGreaterThan

  • numberGreaterThanEquals

  • numberLessThan

  • numberLessThanEquals

  • stringEquals

Règles relatives aux instructions de branchement et aux modificateurs conditionnels

Les règles suivantes s'appliquent aux instructions de branchement (and,or) et aux modificateurs conditionnels (not).

  • Les instructions de branchement et les modificateurs conditionnels doivent apparaître seuls sur une ligne.

  • Les instructions de branchement et les modificateurs conditionnels doivent respecter les règles de niveau.

    • Il ne peut y avoir qu'une seule déclaration au niveau du parent.

    • Chaque branche ou modificateur enfant commence un nouveau niveau.

    Pour plus d'informations sur les niveaux, consultezNiveaux imbriqués dans les instructions conditionnelles.

  • Chaque instruction secondaire doit comporter au moins une instruction conditionnelle secondaire, mais pas plus de dix.

  • Les modificateurs conditionnels ne fonctionnent que sur une seule instruction conditionnelle enfant.

Niveaux imbriqués dans les instructions conditionnelles

Les déclarations conditionnelles fonctionnent à plusieurs niveaux dans une section qui leur est propre. Par exemple, l'attribut if statement apparaît au même niveau dans votre document de flux de travail que le nom et l'action de l'étape. Il s'agit de la base de l'énoncé conditionnel.

Vous pouvez spécifier jusqu'à quatre niveaux d'instructions conditionnelles, mais une seule instruction peut apparaître au niveau parent. Toutes les autres instructions de branchement, modificateurs conditionnels ou opérateurs conditionnels sont indentés à partir de là, un retrait par niveau.

Le schéma suivant indique le nombre maximal de niveaux imbriqués pour une instruction conditionnelle.

base: parent: - child (level 2) - child (level 3) child (level 4)
Attribut if

L'ifattribut spécifie l'instruction conditionnelle en tant qu'attribut de document. C'est le niveau zéro.

Niveau parental

Il s'agit du premier niveau d'imbrication pour les instructions conditionnelles. Il ne peut y avoir qu'une seule déclaration à ce niveau. Si vous n'avez pas besoin de branchement ou de modificateurs, il peut s'agir d'un opérateur conditionnel sans instructions enfant. Ce niveau n'utilise pas la notation en tirets, sauf pour les opérateurs conditionnels.

Niveaux pour enfants

Les niveaux 2 à 4 sont considérés comme des niveaux pour enfants. Les instructions enfant peuvent inclure des instructions de branchement, des modificateurs conditionnels ou des opérateurs conditionnels.

Exemple : niveaux imbriqués

L'exemple suivant montre le nombre maximal de niveaux dans une instruction conditionnelle.

if: and: #first level - stringEquals: 'my_string' #second level value: 'my_string' - and: #also second level - numberEquals: '1' #third level value: 1 - not: #also third level stringEquals: 'second_string' #fourth level value: "diff_string"
Règles de nidification
  • Chaque branche ou modificateur au niveau de l'enfant ouvre un nouveau niveau.

  • Chaque niveau est indenté.

  • Il peut y avoir un maximum de quatre niveaux, dont une instruction, un modificateur ou un opérateur au niveau parent, et jusqu'à trois niveaux supplémentaires.

Exemples de déclarations conditionnelles

Ce groupe d'exemples montre différents aspects des déclarations conditionnelles.

Branchement : et

L'instruction de and branchement fonctionne sur une liste d'expressions qui sont des enfants de la branche, qui doivent toutes être évaluées àtrue. Image Builder évalue les expressions dans l'ordre dans lequel elles apparaissent dans la liste. Si une expression est évaluée àfalse, le traitement s'arrête et la branche est prise en comptefalse.

L'exemple suivant évalue àtrue, car les deux expressions sont évaluées àtrue.

if: and: - stringEquals: 'test_string' value: 'test_string' - numberEquals: 1 value: 1
Branchement : ou

L'instruction de or branchement fonctionne sur une liste d'expressions qui sont des enfants de la branche, dont au moins l'une doit être évaluée àtrue. Image Builder évalue les expressions dans l'ordre dans lequel elles apparaissent dans la liste. Si une expression est évaluée àtrue, le traitement s'arrête et la branche est prise en comptetrue.

L'exemple suivant évalue àtrue, même si la première expression estfalse.

if: or: - stringEquals: 'test_string' value: 'test_string_not_equal' - numberEquals: 1 value: 1
Modificateur conditionnel : non

Le modificateur not conditionnel annule les instructions conditionnelles qui sont les enfants de la branche.

L'exemple suivant indique true quand le not modificateur annule l'instruction stringEquals conditionnelle.

if: not: - stringEquals: 'test_string' value: 'test_string_not_equal'
Déclaration conditionnelle : BooleanEquals

L'opérateur de booleanEquals comparaison compare les valeurs booléennes et renvoie vrai si les valeurs booléennes correspondent exactement.

L'exemple suivant détermine si cette option collectImageScanFindings est activée.

if: - booleanEquals: true value: '$.imagebuilder.collectImageScanFindings'
Déclaration conditionnelle : StringEquals

L'opérateur de stringEquals comparaison compare deux chaînes et renvoie la valeur true si les chaînes correspondent exactement. Si l'une des valeurs n'est pas une chaîne, Image Builder la convertit en chaîne avant de procéder à la comparaison.

L'exemple suivant compare la variable système de plate-forme pour déterminer si le flux de travail s'exécute sur une plate-forme Linux.

if: - stringEquals: 'Linux' value: '$.imagebuilder.Platform'
Déclaration conditionnelle : NumberEquals

L'opérateur de numberEquals comparaison compare deux nombres et renvoie la valeur true s'ils sont égaux. Les nombres à comparer doivent être dans l'un des formats suivants.

  • Entier

  • Float

  • Une chaîne qui correspond au modèle d'expression régulière suivant :^-?[0-9]+(\.)?[0-9]+$.

Les exemples de comparaison suivants évaluent tous àtrue.

if: # Value provider as a number numberEquals: 1 value: '1' # Comparison value provided as a string numberEquals: '1' value: 1 # Value provided as a string numberEquals: 1 value: '1' # Floats are supported numberEquals: 5.0 value: 5.0 # Negative values are supported numberEquals: -1 value: -1

Rubrique suivante :

Gérer les pipelines

Rubrique précédente :

Variables dynamiques
ConfidentialitéConditions d'utilisation du sitePréférences de cookies
© 2025, Amazon Web Services, Inc. ou ses affiliés. Tous droits réservés.