

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Gunakan konstruksi bersyarat di AWSTOE
<a name="toe-conditional-constructs"></a>

Konstruksi bersyarat melakukan tindakan yang berbeda dalam dokumen komponen Anda berdasarkan apakah ekspresi kondisional yang ditentukan mengevaluasi atau. `true` `false` Anda dapat menggunakan `if` konstruksi untuk mengontrol aliran eksekusi dalam dokumen komponen Anda.

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

Anda dapat menggunakan `if` konstruksi untuk mengevaluasi apakah suatu langkah harus dijalankan atau tidak. Secara default, ketika ekspresi `if` kondisional mengevaluasi`true`, AWSTOE menjalankan langkah, dan ketika kondisi dievaluasi`false`, AWSTOE lewati langkah. Jika sebuah langkah dilewati, itu diperlakukan sebagai langkah yang berhasil ketika AWSTOE mengevaluasi apakah fase dan dokumen berjalan dengan sukses.

**catatan**  
`if`Pernyataan hanya dievaluasi satu kali, bahkan jika langkah tersebut memicu restart. Jika sebuah langkah dimulai ulang, ia mengakui bahwa `if` pernyataan tersebut telah dievaluasi, dan berlanjut di mana ia berhenti.

**catatan**  
Ekspresi bersyarat mendukung kedalaman bersarang maksimum 4 level. Jika Anda menyarangkan operator logis (`and``or`,,`not`) melebihi kedalaman 4 level, validasi gagal.

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

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


| Nama kunci | Diperlukan | Deskripsi | 
| --- | --- | --- | 
| ekspresi bersyarat | Ya | Ekspresi kondisional dapat berisi persis salah satu jenis operator berikut di tingkat atas.+  **Operator perbandingan** — Untuk daftar operator perbandingan, dan informasi tentang cara kerjanya dalam dokumen AWSTOE komponen, lihat[Operator perbandingan](toe-comparison-operators.md). <br />+  **Operator logis** — Operator logis mencakup `and``or`,, dan`not`, dan beroperasi pada satu atau lebih operator pembanding. Untuk informasi selengkapnya tentang cara kerja operator logis dalam dokumen AWSTOE komponen, lihat[Operator logis](toe-logical-operators.md). <br />Jika ekspresi Anda harus memenuhi beberapa kondisi, gunakan operator logis untuk menentukan kondisi Anda. | 
| lalu | Tidak | Mendefinisikan tindakan yang harus diambil jika ekspresi kondisional mengevaluasi. `true` | 
| lain | Tidak | Mendefinisikan tindakan yang harus diambil jika ekspresi kondisional mengevaluasi. `false` | 
| langkah tindakan | Bersyarat | Saat Anda menggunakan `then` atau`else`, Anda harus menentukan salah satu tindakan langkah berikut:+  **Batalkan** — AWSTOE menandai langkah sebagai gagal. <br />+  **Jalankan** — AWSTOE jalankan langkahnya. <br />+  **Lewati** — AWSTOE lewati langkahnya.  | 

**Contoh 1: Instal paket**  
Contoh langkah berikut dari dokumen AWSTOE komponen menggunakan operator logis untuk menguji nilai parameter dan menjalankan perintah manajer paket yang sesuai untuk menginstal aplikasi jika paket di-unzip.

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

**Contoh 2: Lewati satu langkah**  
Contoh berikut menunjukkan dua cara untuk melewati satu langkah. Satu menggunakan operator logis, dan satu menggunakan operator perbandingan dengan tindakan `Skip` langkah.

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