

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à.

# Usa costrutti condizionali in AWSTOE
<a name="toe-conditional-constructs"></a>

I costrutti condizionali eseguono azioni diverse nel documento del componente a seconda che l'espressione condizionale specificata restituisca o meno. `true` `false` È possibile utilizzare il `if` costrutto per controllare il flusso di esecuzione nel documento componente.

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

È possibile utilizzare il `if` costrutto per valutare se un passaggio deve essere eseguito o meno. Per impostazione predefinita, quando l'espressione `if` condizionale restituisce`true`, AWSTOE esegue il passaggio e quando la condizione restituisce a`false`, AWSTOE salta il passaggio. Se un passaggio viene saltato, viene considerato come un passaggio riuscito quando si AWSTOE valuta se la fase e il documento sono stati eseguiti correttamente.

**Nota**  
Un'`if`istruzione viene valutata solo una volta, anche se il passaggio attiva un riavvio. Se un passaggio si riavvia, riconosce che l'`if`istruzione è già stata valutata e continua da dove era stata interrotta.

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

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


| Nome chiave | Richiesto | Description | 
| --- | --- | --- | 
| espressione condizionale | Sì |  L'espressione condizionale può contenere esattamente uno dei seguenti tipi di operatori al livello superiore. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/imagebuilder/latest/userguide/toe-conditional-constructs.html) Se l'espressione deve soddisfare più condizioni, utilizzate un operatore logico per specificare le condizioni.  | 
| poi | No |  Definisce l'azione da intraprendere se l'espressione condizionale restituisce. `true`  | 
| altro | No |  Definisce l'azione da intraprendere se l'espressione condizionale restituisce un risultato. `false`  | 
| azione graduale | Condizionale |  Quando si utilizza `then` o`else`, è necessario specificare una delle seguenti azioni di fase: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/imagebuilder/latest/userguide/toe-conditional-constructs.html)  | 

**Esempio 1: pacchetto di installazione**  
I seguenti passaggi di esempio tratti da un documento relativo a un AWSTOE componente utilizzano operatori logici per testare il valore di un parametro ed eseguire i comandi appropriati del gestore di pacchetti per installare un'applicazione se il pacchetto è decompresso.

```
    - 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
```

**Esempio 2: saltare un passaggio**  
L'esempio seguente mostra due modi per saltare un passaggio. Uno utilizza un operatore logico e l'altro utilizza un operatore di confronto con l'azione del `Skip` passaggio.

```
# 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'
```