

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

# Membuat dokumen alur kerja YAMB
<a name="image-workflow-create-document"></a>

Dokumen definisi format YAMAL mengonfigurasi langkah input, output, dan alur kerja untuk tahap pembuatan dan pengujian proses pembuatan gambar. Anda dapat memulai dari template yang menyertakan langkah-langkah standar, atau Anda dapat mulai dari awal untuk menentukan alur kerja Anda sendiri. Apakah Anda menggunakan template atau mulai dari awal, Anda dapat menyesuaikan alur kerja agar sesuai dengan kebutuhan Anda.

## Struktur dokumen alur kerja YAMB
<a name="workflow-document-structure"></a>

Dokumen alur kerja YAMAL yang digunakan Image Builder untuk melakukan pembuatan gambar dan tindakan pengujian disusun sebagai berikut.
+ [Identifikasi dokumen alur kerja](#wfdoc-struct-ident)
+ [Parameter masukan dokumen alur kerja](#wfdoc-struct-param)
+ [Langkah-langkah dokumen alur kerja](#wfdoc-struct-step)
+ [Output dokumen alur kerja](#wfdoc-struct-output)

### Identifikasi dokumen alur kerja
<a name="wfdoc-struct-ident"></a>

Mengidentifikasi alur kerja secara unik. Bagian ini dapat mencakup atribut berikut.


|  Bidang  |  Deskripsi  |  Tipe  |  Diperlukan  | 
| --- | --- | --- | --- | 
| name | Nama dokumen alur kerja. | String | Tidak | 
| deskripsi | Deskripsi dokumen. | String | Tidak | 
| schemaVersion | Versi skema dokumen, saat ini 1.0. | Tali | Ya | 

**Contoh**

```
---
name: sample-test-image
description: Workflow for a sample image, with extra configuration options exposed through workflow parameters.
schemaVersion: 1.0
```

### Parameter masukan dokumen alur kerja
<a name="wfdoc-struct-param"></a>

Bagian dari dokumen alur kerja ini mendefinisikan parameter input yang dapat ditentukan oleh pemanggil. Jika Anda tidak memiliki parameter apa pun, Anda dapat meninggalkan bagian ini. Jika Anda menentukan parameter, setiap parameter dapat menyertakan atribut berikut.


|  Bidang  |  Deskripsi  |  Tipe  |  Diperlukan  |  Batasan  | 
| --- | --- | --- | --- | --- | 
| name | Nama parameter. | Tali | Ya |  | 
| deskripsi | Deskripsi parameter. | String | Tidak |  | 
| default | Nilai default parameter, jika tidak ada nilai yang disediakan. Jika Anda tidak menyertakan nilai default dalam definisi parameter, nilai parameter diperlukan saat runtime. | Cocokkan dengan tipe data parameter. | Tidak |  | 
| jenis | Tipe data parameter. Jika Anda tidak menyertakan tipe data dalam definisi parameter, tipe parameter default ke nilai string yang diperlukan saat runtime. | Tali | Ya | Tipe data parameter harus salah satu dari yang berikut:[See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/imagebuilder/latest/userguide/image-workflow-create-document.html) | 

**Contoh**

Tentukan parameter dalam dokumen alur kerja.

```
parameters:
  - name: waitForActionAtEnd
    type: boolean
    default: true
    description: "Wait for an external action at the end of the workflow"
```

Gunakan nilai parameter dalam dokumen alur kerja.

```
$.parameters.waitForActionAtEnd
```

### Langkah-langkah dokumen alur kerja
<a name="wfdoc-struct-step"></a>

Menentukan hingga 15 langkah tindakan untuk alur kerja. Langkah-langkah berjalan dalam urutan yang didefinisikan dalam dokumen alur kerja. Jika terjadi kegagalan, rollback berjalan dalam urutan terbalik, dimulai dengan langkah yang gagal, dan bekerja mundur melalui langkah-langkah sebelumnya.

Setiap langkah dapat merujuk ke output dari setiap tindakan langkah sebelumnya. Ini dikenal sebagai *rantai, atau referensi*. Untuk merujuk ke output dari tindakan langkah sebelumnya, Anda dapat menggunakan JSONPath pemilih. Contoh:

```
$.stepOutputs.{{step-name}}.{{output-name}}
```

Untuk informasi selengkapnya, lihat [Gunakan variabel dinamis dalam dokumen alur kerja Anda](wfdoc-dynamic-vars.md).

**catatan**  
Meskipun langkah itu sendiri tidak memiliki atribut output, output apa pun dari tindakan langkah disertakan `stepOutput` untuk langkah tersebut.

Setiap langkah dapat mencakup atribut berikut.


|  Bidang  |  Deskripsi  |  Tipe  |  Diperlukan  |  Nilai default  |  Batasan  | 
| --- | --- | --- | --- | --- | --- | 
| tindakan | Tindakan alur kerja yang dilakukan langkah ini. | Tali | Ya |  | Harus merupakan langkah tindakan yang didukung untuk dokumen alur kerja Image Builder. | 
| `if`, diikuti oleh serangkaian pernyataan bersyarat yang memodifikasi `if` operator. | Pernyataan bersyarat menambahkan alur titik keputusan kontrol ke badan langkah alur kerja Anda. | Dikte | Tidak |  | Image Builder mendukung pernyataan bersyarat berikut sebagai pengubah operator: `if`[See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/imagebuilder/latest/userguide/image-workflow-create-document.html) | 
| deskripsi | Deskripsi langkahnya. | String | Tidak |  | String kosong tidak diperbolehkan. Jika disertakan, panjangnya harus 1-1024 karakter. | 
| masukan | Berisi parameter yang perlu dijalankan oleh tindakan langkah. Anda dapat menentukan nilai kunci sebagai nilai statis, atau dengan JSONPath variabel yang menyelesaikan ke tipe data yang benar. | Dikte | Ya |  |  | 
| name | Nama langkah. Nama ini harus unik dalam dokumen alur kerja. | Tali | Ya |  | Panjangnya harus antara 3-128 karakter.<br />Dapat menyertakan karakter alfanumerik dan. `_` Tidak ada spasi. | 
| onFailure | Mengkonfigurasi tindakan yang akan diambil jika langkah gagal, sebagai berikut.[See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/imagebuilder/latest/userguide/image-workflow-create-document.html) | String | Tidak | `Abort` | `Abort` \| `Continue` | 
| RollBackenabled | Mengkonfigurasi apakah langkah akan diputar kembali jika terjadi kegagalan. Anda dapat menggunakan nilai Boolean statis atau JSONPath variabel dinamis yang menyelesaikan nilai Boolean. | Boolean | Tidak | `true` | `true` \| `false` \| atau JSONPath variabel yang menyelesaikan menjadi benar atau salah.  | 
| timeoutSeconds | Waktu maksimum, dalam hitungan detik, langkah berjalan sebelum gagal dan mencoba lagi, jika percobaan ulang berlaku. | Bilangan Bulat | Tidak | Tergantung pada default yang ditentukan untuk tindakan langkah, jika berlaku. | Tidak boleh lebih dari batas waktu maksimal tindakan langkah | 
| Menunggu Detik | Waktu, dalam hitungan detik, di mana eksekusi langkah akan berhenti. | Bilangan Bulat | Tidak | 0 | Tidak boleh lebih dari TimeoutSeconds dari tindakan langkah | 

**Contoh**

```
steps:
  - name: LaunchTestInstance
    action: LaunchInstance
    onFailure: Abort
    inputs:
      waitFor: "ssmAgent"

  - name: ApplyTestComponents
    action: ExecuteComponents
    onFailure: Abort
    inputs:
      instanceId.$: "$.stepOutputs.LaunchTestInstance.instanceId"

  - name: TerminateTestInstance
    action: TerminateInstance
    onFailure: Continue
    inputs:
      instanceId.$: "$.stepOutputs.LaunchTestInstance.instanceId"

  - name: WaitForActionAtEnd
    action: WaitForAction
    if:
      booleanEquals: true
      value: "$.parameters.waitForActionAtEnd"
```

### Output dokumen alur kerja
<a name="wfdoc-struct-output"></a>

Mendefinisikan output untuk alur kerja. Setiap output adalah pasangan nilai kunci yang secara spesifik nama output dan nilainya. Anda dapat menggunakan output untuk mengekspor data saat runtime yang dapat digunakan alur kerja berikutnya. Bagian ini opsional.

Setiap output yang Anda tentukan mencakup atribut berikut.


|  Bidang  |  Deskripsi  |  Tipe  |  Diperlukan  | 
| --- | --- | --- | --- | 
| name | Nama output. Nama harus unik di seluruh alur kerja yang Anda sertakan dalam pipeline Anda. | Tali | Ya | 
| nilai | Nilai untuk output. Nilai string dapat berupa variabel dyanmic, seperti file output dari tindakan langkah. Untuk informasi selengkapnya, lihat [Gunakan variabel dinamis dalam dokumen alur kerja Anda](wfdoc-dynamic-vars.md). | Tali | Ya | 

**Contoh**

Buat ID gambar keluaran untuk dokumen alur kerja dengan output langkah dari `createProdImage` langkah.

```
outputs:
  - name: 'outputImageId'
    value: '$.stepOutputs.createProdImage.imageId'
```

Lihat output alur kerja di alur kerja berikutnya.

```
$.workflowOutputs.outputImageId
```