

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.

# Utiliser des constructions conditionnelles dans AWSTOE
<a name="toe-conditional-constructs"></a>

Les constructions conditionnelles exécutent différentes actions dans le document de votre composant selon que l'expression conditionnelle spécifiée est évaluée à `true` ou. `false` Vous pouvez utiliser la `if` construction pour contrôler le flux d'exécution dans le document de votre composant.

## si Construct
<a name="toe-conditional-if"></a>

Vous pouvez utiliser la `if` construction pour évaluer si une étape doit être exécutée ou non. Par défaut, lorsque l'expression `if` conditionnelle est évaluée à`true`, AWSTOE exécute l'étape, et lorsque la condition est évaluée à`false`, AWSTOE ignore l'étape. Si une étape est ignorée, elle est considérée comme une étape réussie lorsqu' AWSTOE il est déterminé si la phase et le document ont été exécutés correctement.

**Note**  
Une `if` instruction n'est évaluée qu'une seule fois, même si l'étape déclenche un redémarrage. Si une étape redémarre, elle reconnaît que l'`if`instruction a déjà été évaluée et continue là où elle s'est arrêtée.

### Syntaxe
<a name="toe-conditional-if-syntax"></a>

```
if:
  - <conditional expression>:
      [then: <step action>]
      [else: <step action>]
```


| Nom de la touche | Obligatoire | Description | 
| --- | --- | --- | 
| expression conditionnelle | Oui |  L'expression conditionnelle peut contenir exactement l'un des types d'opérateurs suivants au niveau supérieur. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/imagebuilder/latest/userguide/toe-conditional-constructs.html) Si votre expression doit satisfaire plusieurs conditions, utilisez un opérateur logique pour spécifier vos conditions.  | 
| then | Non |  Définit l'action à effectuer si l'expression conditionnelle est évaluée à`true`.  | 
| else | Non |  Définit l'action à effectuer si l'expression conditionnelle est évaluée à`false`.  | 
| action par étapes | Conditionnel |  Lorsque vous utilisez `then` ou`else`, vous devez spécifier l'une des étapes suivantes : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/imagebuilder/latest/userguide/toe-conditional-constructs.html)  | 

**Exemple 1 : installer le package**  
Les exemples d'étapes suivants, tirés d'un document de AWSTOE composant, utilisent des opérateurs logiques pour tester une valeur de paramètre et exécuter les commandes du gestionnaire de packages appropriées pour installer une application si le package est décompressé.

```
    - name: InstallUnzipAptGet
      action: ExecuteBash
      if:
        and:
            - binaryExists: 'apt-get'
            - not:
                binaryExists: 'unzip'
      inputs:
        commands:
            - sudo apt-get update
            - sudo apt-get install -y unzip

    - name: InstallUnzipYum
      action: ExecuteBash
      if:
        and:
            - binaryExists: 'yum'
            - not:
                binaryExists: 'unzip'
      inputs:
        commands:
            - sudo yum install -y unzip

    - name: InstallUnzipZypper
      action: ExecuteBash
      if:
        and:
            - binaryExists: 'zypper'
            - not:
                binaryExists: 'unzip'
      inputs:
        commands:
            - sudo zypper refresh
            - sudo zypper install -y unzip
```

**Exemple 2 : sauter une étape**  
L'exemple suivant montre deux manières de sauter une étape. L'un utilise un opérateur logique et l'autre un opérateur de comparaison avec l'action `Skip` step.

```
# Creates a file if it does not exist using not
- name: CreateMyConfigFile-1
  action: ExecuteBash
  if:
    not:
      fileExists: '/etc/my_config'
  inputs:
    commands:
      - echo "Hello world" > '/etc/my_config'

# Creates a file if it does not exist using then and else
- name: CreateMyConfigFile-2
  action: ExecuteBash
  if:
    fileExists: '/etc/my_config'
    then: Skip
    else: Execute
  inputs:
    commands:
      - echo "Hello world" > '/etc/my_config'
```