

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. 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` \$1 `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` \$1 `false` \$1 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
```

# Tindakan langkah yang didukung untuk dokumen alur kerja Anda
<a name="wfdoc-step-actions"></a>

Bagian ini mencakup detail untuk tindakan langkah yang didukung Image Builder.Istilah yang digunakan dalam bagian ini

AMI  
Gambar Mesin Amazon

ARN  
Nama Sumber Daya Amazon

**Topics**
+ [ApplyImageConfigurations](#wfdoc-step-action-apply-image-configurations)
+ [BootstrapInstanceForContainer](#wfdoc-step-action-bootstrap-container)
+ [CollectImageMetadata](#wfdoc-step-action-collect-image-metadata)
+ [CollectImageScanFindings](#wfdoc-step-action-collect-findings)
+ [CreateImage](#wfdoc-step-action-create-img-from-inst)
+ [DistributeImage](#wfdoc-step-action-distribute-image)
+ [ExecuteComponents](#wfdoc-step-action-exec-components)
+ [ExecuteStateMachine](#wfdoc-step-action-exec-state-machine)
+ [LaunchInstance](#wfdoc-step-action-launch-instance)
+ [ModifyImageAttributes](#wfdoc-step-action-modify-image-attributes)
+ [RegisterImage](#wfdoc-step-action-register-image)
+ [RunCommand](#wfdoc-step-action-run-command)
+ [RunSysPrep](#wfdoc-step-action-run-sysprep)
+ [SanitizeInstance](#wfdoc-step-action-sanitize-instance)
+ [TerminateInstance](#wfdoc-step-action-terminate-instance)
+ [WaitForAction](#wfdoc-step-action-waitfor)
+ [WaitForSSMAgent](#wfdoc-step-action-wait-for-ssm-agent)

## ApplyImageConfigurations
<a name="wfdoc-step-action-apply-image-configurations"></a>

Langkah tindakan ini menerapkan berbagai konfigurasi dan integrasi untuk didistribusikan AMIs, seperti konfigurasi lisensi, konfigurasi template peluncuran, konfigurasi ekspor S3, konfigurasi EC2 Fast Launch, dan konfigurasi parameter Systems Manager. Konfigurasi berlaku untuk gambar terdistribusi hanya di akun sumber, kecuali untuk konfigurasi parameter SSM yang dapat diterapkan lintas akun.

Batas **Waktu Default:** 360 menit

Batas **Waktu Maks:** 720 menit

**Rollback:** Tidak ada rollback untuk tindakan langkah ini.

**Input:** Tabel berikut mencakup input yang didukung untuk tindakan langkah ini.


| Nama masukan | Deskripsi | Tipe | Diperlukan | Default | Batasan | 
| --- | --- | --- | --- | --- | --- | 
| region | Wilayah gambar. | Tali | Ya |  |  | 
| licenseConfigurationArns | Konfigurasi lisensi ARN untuk gambar. | Array | Tidak |  |  | 
| launchTemplateConfigurations |  | Array | Tidak |  |  | 
| launchTemplateConfigurations:launchTemplateId | ID template peluncuran untuk diterapkan ke gambar. | String | Ya jika launchTemplateConfigurations ditentukan |  |  | 
| launchTemplateConfigurations:AccountID | Akun template peluncuran IDs untuk diterapkan ke gambar. | String | Tidak |  |  | 
| launchTemplateConfigurations:setDefaultVersion | Pengaturan versi default template peluncuran untuk gambar. | Boolean | Tidak |  |  | 
| s3 ExportConfiguration |  | Array | Tidak |  |  | 
| ExportConfigurationS3: RoleName | Nama peran konfigurasi ekspor S3 untuk gambar. | String | Ya jika s3ExportConfiguration ditentukan |  |  | 
| s3ExportConfiguration: diskImageFormat | Format gambar disk konfigurasi ekspor S3 untuk gambar. | String | Ya jika s3ExportConfiguration ditentukan |  | Nilai yang diizinkan - VMDK\$1RAW\$1VHD | 
| S3: s3Bucket ExportConfiguration | Nama bucket konfigurasi ekspor S3 untuk gambar. | String | Ya jika s3ExportConfiguration ditentukan |  |  | 
| S3: s3Awalan ExportConfiguration | Awalan bucket konfigurasi ekspor S3 untuk gambar. | String | Tidak |  |  | 
| fastLaunchConfigurations | Konfigurasi Peluncuran EC2 Cepat untuk gambar. | Array | Tidak |  |  | 
| fastLaunchConfigurations:diaktifkan |  EC2 Peluncuran Cepat enabled/disabled untuk gambar. | Boolean | Ya jika fastLaunchConfigurations ditentukan |  |  | 
| fastLaunchConfigurations:SnapshotKonfigurasi |  EC2 Peluncuran Cepat enabled/disabled untuk gambar. | Peta | Tidak |  |  | 
| fastLaunchConfigurations:SnapshotConfiguration: targetResourceCount | EC2 Peluncuran cepat jumlah sumber daya target untuk gambar. | Bilangan Bulat | Tidak |  |  | 
| fastLaunchConfigurations:maxParallelLaunches | EC2 Peluncuran paralel maksimum peluncuran Fast Launch untuk gambar. | Bilangan Bulat | Tidak |  |  | 
| fastLaunchConfigurations:LaunchTemplate |  |  | Tidak |  |  | 
| fastLaunchConfigurations:LaunchTemplate: launchTemplateId | EC2 ID template peluncuran Peluncuran Cepat untuk gambar. | String | Tidak |  |  | 
| fastLaunchConfigurations:LaunchTemplate: launchTemplateName | EC2 Fast Launch meluncurkan nama template untuk gambar. | String | Tidak |  |  | 
| fastLaunchConfigurations:LaunchTemplate: launchTemplateVersion | EC2 Versi template peluncuran Peluncuran Cepat untuk gambar. | String | Tidak |  |  | 
| ssmParameterConfigurations | Konfigurasi Parameter SSM untuk gambar. | Peta | Tidak |  |  | 
| ssmParameterConfigurations:amiAccountId | ID akun AMI Parameter SSM untuk gambar. | String | Tidak |  |  | 
| ssmParameterConfigurations:Parametername | Nama Parameter SSM untuk gambar. | String | Ya jika ssmParameterConfigurations ditentukan |  |  | 
| ssmParameterConfigurations:DataType | Jenis data Parameter SSM untuk gambar. | String | Tidak |  | Nilai yang diizinkan - text\$1aws:ec2:image) | 

**Output:** Tabel berikut mencakup output untuk tindakan langkah ini.


| Nama output | Deskripsi | Tipe | 
| --- | --- | --- | 
| ConfiguradImages | Daftar gambar yang dikonfigurasi. | Array | 
| ConfiguradImages: AccountID | ID akun tujuan dari gambar yang didistribusikan. | String | 
| ConfigureDimages:nama | Nama AMI. | String | 
| ConfigureDimages:amiID | ID AMI dari gambar yang didistribusikan. | String | 
| ConfigureDimages:DateStarted | Waktu UTC saat distribusi dimulai. | String | 
| ConfigureDimags:DateSopped | Waktu UTC saat distribusi selesai. | String | 
| ConfiguradImages: Langkah | Langkah di mana distribusi berhenti. | Selesai\$1 \$1 \$1 AssociateLicensesRunning \$1 UpdateLaunchTemplateRunning \$1 PutSsmParametersRunning UpdateFastLaunchConfiguration ExportAmiQueued ExportAmiRunning | 
| ConfigureDimages:wilayah | Tne AWS dari gambar yang didistribusikan | String | 
| ConfiguradImages: Status | Status distribusi. | Selesai\$1Gagal \$1 Dibatalkan\$1 TimedOut | 
| ConfigureDimages:ErrorMessage  | Pesan kesalahan, jika ada. | String | 

**Contoh**

Tentukan tindakan langkah dalam dokumen alur kerja.

```
- name: ApplyImageConfigurations
  action: ApplyImageConfigurations
  onFailure: Abort
  inputs:
    distributedImages.$: $.stepOutputs.DistributeImageStep.distributedImages
```

Gunakan output dari nilai tindakan langkah dalam dokumen alur kerja.

```
$.stepOutputs.ApplyImageConfigurationsStep.configuredImages
```

## BootstrapInstanceForContainer
<a name="wfdoc-step-action-bootstrap-container"></a>

Tindakan langkah ini menjalankan skrip layanan untuk mem-bootstrap instance dengan persyaratan minimum untuk menjalankan alur kerja kontainer. Image Builder menggunakan API Systems Manager untuk menjalankan skrip ini. **sendCommand** Untuk informasi selengkapnya, lihat [AWS Systems Manager Menjalankan Perintah](https://docs.aws.amazon.com/systems-manager/latest/userguide/execute-remote-commands.html).

**catatan**  
Skrip bootstrap menginstal paket AWS CLI dan Docker yang merupakan prasyarat bagi Image Builder agar berhasil membangun wadah Docker. Jika Anda tidak menyertakan tindakan langkah ini, pembuatan gambar bisa gagal.

Batas **Waktu Default:** 60 menit

Batas **Waktu Maks:** 720 menit

**Rollback:** Tidak ada rollback untuk tindakan langkah ini.

**Input:** Tabel berikut mencakup input yang didukung untuk tindakan langkah ini.


| Nama masukan | Deskripsi | Tipe | Diperlukan | Default | Batasan | 
| --- | --- | --- | --- | --- | --- | 
| instanceId | ID dari instance untuk bootstrap. | Tali | Ya |  | Ini harus berupa ID instance keluaran dari langkah alur kerja yang meluncurkan instance untuk alur kerja ini. | 

**Output:** Tabel berikut mencakup output untuk tindakan langkah ini.


| Nama output | Deskripsi | Tipe | 
| --- | --- | --- | 
| runCommandId | ID Systems Manager sendCommand yang menjalankan skrip bootstrap pada instance. | String | 
| status | Status dikembalikan dari Systems ManagersendCommand. | String | 
| output | Output dikembalikan dari Systems ManagersendCommand. | String | 

**Contoh**

Tentukan tindakan langkah dalam dokumen alur kerja.

```
- name: ContainerBootstrapStep
  action: BootstrapInstanceForContainer
  onFailure: Abort
  inputs:
      instanceId.$: $.stepOutputs.LaunchStep.instanceId
```

Gunakan output dari nilai tindakan langkah dalam dokumen alur kerja.

```
$.stepOutputs.ContainerBootstrapStep.status
```

## CollectImageMetadata
<a name="wfdoc-step-action-collect-image-metadata"></a>

Tindakan langkah ini hanya berlaku untuk alur kerja build.

EC2 Image Builder menjalankan [Agen AWS Systems Manager (Systems Manager)](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent.html) pada EC2 instance yang diluncurkan untuk membangun dan menguji gambar Anda. Image Builder mengumpulkan informasi tambahan tentang instance yang digunakan selama fase build dengan [Systems Manager Inventory](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-inventory.html). Informasi ini mencakup nama dan versi sistem operasi (OS), serta daftar paket dan versinya masing-masing seperti yang dilaporkan oleh sistem operasi Anda.

**catatan**  
Tindakan langkah ini hanya berfungsi untuk gambar yang dibuat AMIs.

Batas **Waktu Default:** 30 menit

Batas **Waktu Maks:** 720 menit

**Rollback:** Image Builder mengembalikan semua sumber daya Systems Manager yang dibuat selama langkah ini.

**Input:** Tabel berikut mencakup input yang didukung untuk tindakan langkah ini.


| Nama masukan | Deskripsi | Tipe | Diperlukan | Default | Batasan | 
| --- | --- | --- | --- | --- | --- | 
| instanceId | Instans build untuk menerapkan pengaturan metadata ke. | Tali | Ya |  | Ini harus berupa ID instance keluaran dari langkah alur kerja yang meluncurkan instance build untuk alur kerja ini. | 

**Output:** Tabel berikut mencakup output untuk tindakan langkah ini.


| Nama output | Deskripsi | Tipe | 
| --- | --- | --- | 
| osVersion | Nama dan versi sistem operasi yang dikumpulkan dari instance build. | String | 
| AssociationID | ID asosiasi Systems Manager yang digunakan untuk pengumpulan inventaris. | String | 

**Contoh**

Tentukan tindakan langkah dalam dokumen alur kerja.

```
- name: CollectMetadataStep
  action: CollectImageMetadata
  onFailure: Abort
  inputs:
      instanceId: $.stepOutputs.LaunchStep.instanceId
```

Gunakan output dari tindakan langkah dalam dokumen alur kerja.

```
$.stepOutputs.CollectMetadataStep.osVersion
```

## CollectImageScanFindings
<a name="wfdoc-step-action-collect-findings"></a>

Jika Amazon Inspector diaktifkan untuk akun Anda dan pemindaian gambar diaktifkan untuk pipeline Anda, tindakan langkah ini mengumpulkan temuan pemindaian gambar yang dilaporkan oleh Amazon Inspector untuk instance pengujian Anda. Tindakan langkah ini tidak tersedia untuk alur kerja build.

Batas **Waktu Default:** 120 menit

Batas **Waktu Maks:** 720 menit

**Rollback:** Tidak ada rollback untuk tindakan langkah ini.

**Input:** Tabel berikut mencakup input yang didukung untuk tindakan langkah ini.


| Nama masukan | Deskripsi | Tipe | Diperlukan | Default | Batasan | 
| --- | --- | --- | --- | --- | --- | 
| instanceId | ID untuk contoh pemindaian berjalan. | Tali | Ya |  | Ini harus berupa ID instance keluaran dari langkah alur kerja yang meluncurkan instance untuk alur kerja ini. | 

**Output:** Tabel berikut mencakup output untuk tindakan langkah ini.


| Nama output | Deskripsi | Tipe | 
| --- | --- | --- | 
| runCommandId | ID Systems Manager sendCommand yang menjalankan skrip untuk mengumpulkan temuan. | String | 
| status | Status dikembalikan dari Systems ManagersendCommand. | String | 
| output | Output dikembalikan dari Systems ManagersendCommand. | String | 

**Contoh**

Tentukan tindakan langkah dalam dokumen alur kerja.

```
- name: CollectFindingsStep
  action: CollectImageScanFindings
  onFailure: Abort
  inputs:
      instanceId.$: $.stepOutputs.LaunchStep.instanceId
```

Gunakan output dari nilai tindakan langkah dalam dokumen alur kerja.

```
$.stepOutputs.CollectFindingsStep.status
```

## CreateImage
<a name="wfdoc-step-action-create-img-from-inst"></a>

Tindakan langkah ini membuat gambar dari instance yang sedang berjalan dengan Amazon EC2 `CreateImage` API. Selama proses pembuatan, tindakan langkah menunggu seperlunya untuk memverifikasi bahwa sumber daya telah mencapai keadaan yang benar sebelum dilanjutkan.

Batas **Waktu Default:** 720 menit

Batas **Waktu Maks:** 3 hari

**Rollback:** Tidak ada rollback untuk tindakan langkah ini.

**Input:** Tabel berikut mencakup input yang didukung untuk tindakan langkah ini.


| Nama masukan | Deskripsi | Tipe | Diperlukan | Default | Batasan | 
| --- | --- | --- | --- | --- | --- | 
| instanceId | Contoh untuk membuat gambar baru dari. | Tali | Ya |  | Instance untuk ID instance yang disediakan harus dalam running keadaan saat langkah ini dimulai. | 

**Output:** Tabel berikut mencakup output untuk tindakan langkah ini.


| Nama output | Deskripsi | Tipe | 
| --- | --- | --- | 
| imageId | ID AMI dari gambar yang dibuat. | String | 

**Contoh**

Tentukan tindakan langkah dalam dokumen alur kerja.

```
- name: CreateImageFromInstance
  action: CreateImage
  onFailure: Abort
  inputs:
      instanceId.$: "i-1234567890abcdef0"
```

Gunakan output dari nilai tindakan langkah dalam dokumen alur kerja.

```
$.stepOutputs.CreateImageFromInstance.imageId
```

## DistributeImage
<a name="wfdoc-step-action-distribute-image"></a>

Tindakan langkah ini mendistribusikan AMI ke wilayah dan akun tertentu. Ini membuat salinan AMI di wilayah target dan akun berdasarkan konfigurasi distribusi yang disediakan yang diberikan dalam permintaan untuk CreateImage atau CreateImagePipeline APIs atau pengaturan distribusi khusus yang disediakan dalam alur kerja untuk mengganti pengaturan dalam konfigurasi distribusi.

Batas **Waktu Default:** 360 menit

Batas **Waktu Maks:** 720 menit

**Rollback:** Tidak ada rollback untuk tindakan langkah ini.

**Input:** Tabel berikut mencakup input yang didukung untuk tindakan langkah ini.


| Nama masukan | Deskripsi | Tipe | Diperlukan | Default | Batasan | 
| --- | --- | --- | --- | --- | --- | 
| region | Daftar wilayah untuk mendistribusikan gambar. | Tali | Ya |  | Panjang minimum 1. Panjang maksimum 1024. | 
| name | Nama konfigurasi distribusi. | String | Tidak |  |  | 
| deskripsi | Distribusi konfigurasi distribusi. | String | Tidak |  |  | 
| targetAccountIds | Akun IDs untuk mendistribusikan gambar. | Array | Tidak |  |  | 
| AmiTags | Tag konfigurasi distribusi. | Peta | Tidak |  |  | 
| kmsKeyId | Kunci KMS untuk diterapkan pada gambar yang didistribusikan. | String | Tidak |  |  | 

**Output:** Tabel berikut mencakup output untuk tindakan langkah ini.


| Nama output | Deskripsi | Tipe | 
| --- | --- | --- | 
| DidistribusikanDimages | Daftar gambar yang didistribusikan | Array | 
| Didistribusikan: Wilayah |  AWS Wilayah Tne dari gambar yang didistribusikan. | String | 
| DistributedImages:nama | Nama AMI. | String | 
| Didistribusikan:Amiid | ID AMI dari gambar yang didistribusikan. | String | 
| Didistribusikan:Accountid | ID akun tujuan dari gambar yang didistribusikan. | String | 
| Didistribusikan: DateStarted | Waktu UTC saat distribusi dimulai. | String | 
| Didistribusikan:DateSopped | Waktu UTC saat distribusi selesai. | String | 
| Didistribusikan:Status | Status distribusi. | Selesai\$1Gagal \$1 Dibatalkan\$1 TimedOut | 
| Didistribusikan:Langkah | Langkah di mana distribusi berhenti. | Selesai\$1 CopyAmiRunning | 
| DistributedImages:ErrorMessage  | Pesan kesalahan, jika ada. | String | 

**Contoh**

Tentukan tindakan langkah dalam dokumen alur kerja.

```
- name: DistributeImage
  action: DistributeImage
  onFailure: Abort
  inputs:
    distributions:
      - region.$: "$.parameters.SourceRegion"
        description: "AMI distribution to source region"
        amiTags:
          DistributionTest: "SourceRegion"
          WorkflowStep: "DistributeToSourceRegion"
          BuildDate: "{{imagebuilder:buildDate:yyyyMMHHss}}"
          BuildVersion: "{{imagebuilder:buildVersion}}"
```

Gunakan output dari nilai tindakan langkah dalam dokumen alur kerja.

```
$.stepOutputs.DistributeImageStep.distributedImages
```

## ExecuteComponents
<a name="wfdoc-step-action-exec-components"></a>

Tindakan langkah ini menjalankan komponen yang ditentukan dalam resep untuk gambar saat ini yang sedang dibangun. Alur kerja build menjalankan komponen build pada instance build. Alur kerja pengujian hanya menjalankan komponen pengujian pada instance pengujian.

Image Builder menggunakan API Systems Manager untuk menjalankan komponen. **sendCommand** Untuk informasi selengkapnya, lihat [AWS Systems Manager Menjalankan Perintah](https://docs.aws.amazon.com/systems-manager/latest/userguide/execute-remote-commands.html).

Batas **Waktu Default:** 720 menit

Batas **Waktu Maks:** 1 hari

**Rollback:** Tidak ada rollback untuk tindakan langkah ini.

**Input:** Tabel berikut mencakup input yang didukung untuk tindakan langkah ini.


| Nama masukan | Deskripsi | Tipe | Diperlukan | Default | Batasan | 
| --- | --- | --- | --- | --- | --- | 
| instanceId | ID untuk contoh bahwa komponen harus berjalan. | Tali | Ya |  | Ini harus berupa ID instance keluaran dari langkah alur kerja yang meluncurkan instance untuk alur kerja ini. | 

**Output:** Tabel berikut mencakup output untuk tindakan langkah ini.


| Nama output | Deskripsi | Tipe | 
| --- | --- | --- | 
| runCommandId | ID Systems Manager sendCommand yang menjalankan komponen pada instance. | String | 
| status | Status dikembalikan dari Systems ManagersendCommand. | String | 
| output | Output dikembalikan dari Systems ManagersendCommand. | String | 

**Contoh**

Tentukan tindakan langkah dalam dokumen alur kerja.

```
- name: ExecComponentsStep
  action: ExecuteComponents
  onFailure: Abort
  inputs:
      instanceId: $.stepOutputs.LaunchStep.instanceId
```

Gunakan output dari tindakan langkah dalam dokumen alur kerja.

```
$.stepOutputs.ExecComponentsStep.status
```

## ExecuteStateMachine
<a name="wfdoc-step-action-exec-state-machine"></a>

Tindakan langkah ini memulai eksekusi mesin AWS Step Functions status dari alur kerja Image Builder. Image Builder menggunakan Step Functions `StartExecution` API untuk memulai state machine dan menunggu sampai selesai. Ini berguna untuk mengintegrasikan alur kerja yang kompleks, validasi kepatuhan, atau proses sertifikasi ke dalam pipeline pembuatan gambar Anda.

Untuk informasi selengkapnya, lihat [Pelajari tentang mesin status di Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-statemachines.html) di *Panduan AWS Step Functions Pengembang*.

Batas **Waktu Default:** 6 jam

Batas **Waktu Maks:** 24 jam

**Rollback:** Tidak ada rollback untuk tindakan langkah ini.

**Input:** Tabel berikut mencakup input yang didukung untuk tindakan langkah ini.


| Nama masukan | Deskripsi | Tipe | Diperlukan | Default | Batasan | 
| --- | --- | --- | --- | --- | --- | 
| stateMachineArn | ARN dari mesin status Step Functions yang akan dijalankan. | Tali | Ya |  | Harus berupa ARN mesin negara yang valid. | 
| input | Data input JSON untuk diberikan ke mesin negara. | String | Tidak | \$1\$1 | Harus string JSON yang valid, panjang maksimum: 16 KiB. | 

**Output:** Tabel berikut mencakup output untuk tindakan langkah ini.


| Nama output | Deskripsi | Tipe | 
| --- | --- | --- | 
| ExecutionARN | ARN dari eksekusi mesin negara. | String | 
| output | Output dari eksekusi mesin negara. | String | 

**Izin IAM diperlukan**

Peran eksekusi kustom Anda harus memiliki izin berikut untuk menggunakan tindakan langkah ini:

**Izinkan tindakan**
+ `states:StartExecution`
+ `states:DescribeExecution`

**Tentukan sumber daya**
+ `arn:aws:states:us-west-2:111122223333:stateMachine:state-machine-name`
+ `arn:aws:states:us-west-2:111122223333:execution:state-machine-name:*`

**Contoh**

Tentukan tindakan langkah dalam dokumen alur kerja.

```
- name: ValidateImageCompliance
  action: ExecuteStateMachine
  timeoutSeconds: 3600
  onFailure: Abort
  inputs:
    stateMachineArn: arn:aws:states:us-west-2:111122223333:stateMachine:ImageComplianceValidation
    input: |
      {
        "imageId": "{{ $.stepOutputs.CreateImageFromInstance.imageId }}",
        "region": "us-west-2",
        "complianceLevel": "high",
        "requiredScans": ["cve", "benchmark", "configuration"]
      }
```

Gunakan output dari nilai tindakan langkah dalam dokumen alur kerja.

```
$.stepOutputs.ValidateImageCompliance.executionArn
```

## LaunchInstance
<a name="wfdoc-step-action-launch-instance"></a>

Tindakan langkah ini meluncurkan instance di Anda Akun AWS dan menunggu hingga agen Systems Manager berjalan pada instance sebelum melanjutkan ke langkah berikutnya. Tindakan peluncuran menggunakan pengaturan dari sumber daya konfigurasi resep dan infrastruktur yang terkait dengan gambar Anda. Misalnya, jenis instance yang akan diluncurkan berasal dari konfigurasi infrastruktur. Outputnya adalah ID instance dari instance yang diluncurkan.

`waitFor`Input mengkonfigurasi kondisi yang memenuhi persyaratan penyelesaian langkah.

Batas **Waktu Default:** 75 menit

Batas **Waktu Maks:** 720 menit

**Rollback:** Untuk instance build, rollback melakukan tindakan yang telah dikonfigurasi di sumber daya konfigurasi infrastruktur. Secara default, instance build dihentikan jika pembuatan gambar gagal. Namun, ada pengaturan dalam konfigurasi infrastruktur untuk menjaga instance build untuk pemecahan masalah.

**Input:** Tabel berikut mencakup input yang didukung untuk tindakan langkah ini.


| Nama masukan | Deskripsi | Tipe | Diperlukan | Default | Batasan | 
| --- | --- | --- | --- | --- | --- | 
| imageIdOverride | Gambar yang akan digunakan untuk meluncurkan instance | String | Tidak |  Membangun panggung: Gambar dasar resep gambar Tahap pengujian: Keluarkan AMI dari tahap pembuatan  | Harus berupa ID AMI yang valid | 
| instanceTypesOverride | Image Builder mencoba setiap jenis instance dalam daftar hingga menemukan satu yang berhasil diluncurkan | Daftar String | Tidak | Jenis instans yang ditentukan dalam Konfigurasi Infrastruktur | Harus jenis instance yang valid | 
| Menunggu | Kondisi untuk menunggu sebelum menyelesaikan langkah alur kerja dan melanjutkan ke langkah berikutnya | Tali | Ya |  | Image Builder mendukungssmAgent. | 

**Output:** Tabel berikut mencakup output untuk tindakan langkah ini.


| Nama output | Deskripsi | Tipe | 
| --- | --- | --- | 
| instanceId | ID instance dari instance yang diluncurkan. | String | 

**Contoh**

Tentukan tindakan langkah dalam dokumen alur kerja.

```
- name: LaunchStep
  action: LaunchInstance
  onFailure: Abort
  inputs:
    waitFor: ssmAgent
```

Gunakan output dari tindakan langkah dalam dokumen alur kerja.

```
$.stepOutputs.LaunchStep.instanceId
```

## ModifyImageAttributes
<a name="wfdoc-step-action-modify-image-attributes"></a>

Tindakan langkah ini memodifikasi atribut terdistribusi AMIs, seperti izin peluncuran dan atribut AMI lainnya. Ini beroperasi pada AMIs yang telah didistribusikan ke wilayah target dan akun.

Batas **Waktu Default:** 120 menit

Batas **Waktu Maks:** 180 menit

**Rollback:** Tidak ada rollback untuk tindakan langkah ini.

**Input:** Tabel berikut mencakup input yang didukung untuk tindakan langkah ini.


| Nama masukan | Deskripsi | Tipe | Diperlukan | Default | Batasan | 
| --- | --- | --- | --- | --- | --- | 
| region | Wilayah gambar. | Tali | Ya |  |  | 
| LaunchPermission |  |  | Tidak |  |  | 
| LaunchPermission: UserIds | Pengguna IDs untuk memodifikasi izin peluncuran untuk gambar. | String | Tidak |  |  | 
| LaunchPermission: UserGroups | Grup pengguna untuk memodifikasi izin peluncuran untuk gambar. | String | Tidak |  |  | 
| LaunchPermission: OrganizationArns |  AWS Organisasi ARNs untuk memodifikasi izin peluncuran untuk gambar. | String | Tidak |  |  | 
| LaunchPermission: organizationalUnitArns | Unit AWS Organisasi ARNs untuk memodifikasi izin peluncuran untuk gambar. | String | Tidak |  |  | 

**Output:** Tabel berikut mencakup output untuk tindakan langkah ini.


| Nama output | Deskripsi | Tipe | 
| --- | --- | --- | 
| ModifiedImages | Daftar gambar yang dimodifikasi | Array | 
| Modifiedimages:Accountid | ID akun tujuan dari gambar yang didistribusikan. | String | 
| ModifiedImages:nama | Nama AMI. | String | 
| Modifiedimages:amiid | ID AMI dari gambar yang didistribusikan. | String | 
| ModifiedImages:DateStarted | Waktu UTC saat distribusi dimulai. | String | 
| ModifiedImages:DateSopped | Waktu UTC saat distribusi selesai. | String | 
| Modifiedimages:Langkah | Langkah di mana distribusi berhenti. | Selesai\$1 ModifyAmiRunning | 
| Modifiedimages:Wilayah |  AWS Wilayah gambar Tne. | String | 
| ModifiedImages:Status | Status distribusi. | Selesai\$1Gagal \$1 Dibatalkan\$1 TimedOut | 
| ModifiedImages: ErrorMessage  | Pesan kesalahan, jika ada. | String | 

**Contoh**

Tentukan tindakan langkah dalam dokumen alur kerja.

```
- name: ModifyImageAttributes
  action: ModifyImageAttributes
  onFailure: Abort
  inputs:
    distributedImages.$: $.stepOutputs.DistributeImageStep.distributedImages
```

Gunakan output dari nilai tindakan langkah dalam dokumen alur kerja.

```
$.stepOutputs.ModifyImageAttributesStep.modifiedImages
```

## RegisterImage
<a name="wfdoc-step-action-register-image"></a>

Tindakan langkah ini mendaftarkan Amazon Machine Image (AMI) baru menggunakan Amazon EC2 RegisterImage API. Ini memungkinkan Anda untuk membuat AMI dari snapshot atau kumpulan snapshot yang ada, menentukan berbagai atribut gambar.

Batas **Waktu Default: 540** menit

Batas **Waktu Maks:** 720 menit

**Rollback:** Tidak ada rollback untuk tindakan langkah ini.

**Input:** Tabel berikut mencakup input yang didukung untuk tindakan langkah ini.


| Nama masukan | Deskripsi | Tipe | Diperlukan | Default | Batasan | 
| --- | --- | --- | --- | --- | --- | 
| arsitektur | Arsitektur AMI. | String | Tidak |  | Nilai yang valid: i386, x86\$164, arm64, x86\$164\$1mac, arm64\$1mac | 
| blockDeviceMapping | Entri pemetaan perangkat blok untuk AMI. | Array | Tidak |  |  | 
| BootMode | Mode boot AMI. | String | Tidak |  | Nilai yang valid: legacy-bios, uefi, uefi-preferen | 
| deskripsi | Deskripsi untuk AMI. | String | Tidak |  |  | 
| enaSupport | Apakah jaringan yang ditingkatkan dengan ENA diaktifkan. | Boolean | Tidak |  |  | 
| ImageLocation | Lokasi manifes AMI. | String | Tidak |  | Diperlukan untuk didukung S3 AMIs | 
| IMDSSupport | Tingkat IMDSv2 dukungan. | String | Tidak |  | Nilai yang valid: v2.0 | 
| includeSnapshotTags | Apakah akan menyertakan tag dari snapshot pertama yang ditentukan dalam pemetaan perangkat blok. | Boolean | Tidak | SALAH |  Ketika diatur ke true, tag disertakan sebagai berikut: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/imagebuilder/latest/userguide/wfdoc-step-actions.html)  | 
| KernelID | ID kernel yang akan digunakan. | String | Tidak |  |  | 
| RamdisKid | ID disk RAM yang akan digunakan. | String | Tidak |  |  | 
| rootDeviceName | Nama perangkat perangkat root. | String | Tidak |  | Contoh: /dev/sda1 | 
| sriovNetSupport | Jaringan yang disempurnakan dengan antarmuka Intel 82599 VF. | String | Tidak |  |  | 
| TPMSupport | Dukungan versi TPM. | String | Tidak |  | Nilai yang valid: v2.0 | 
| UEFIData | Data UEFI yang dikodekan Base64. | String | Tidak |  |  | 
| VirtualizationType | Jenis virtualisasi. | String | Tidak |  | Nilai yang valid: hvm, paravirtual | 

**Output:** Tabel berikut mencakup output untuk tindakan langkah ini.


| Nama output | Deskripsi | Tipe | 
| --- | --- | --- | 
| imageId | ID AMI dari gambar yang terdaftar. | String | 

**Izin IAM diperlukan**

Peran eksekusi kustom Anda harus memiliki izin berikut untuk menggunakan tindakan langkah ini:

**Izinkan tindakan**
+ `ec2:DescribeSnapshots`
+ `ec2:CreateTags`

**Contoh**

Tentukan tindakan langkah dalam dokumen alur kerja.

```
- name: RegisterNewImage
  action: RegisterImage
  onFailure: Abort
  inputs:
    architecture: "x86_64"
    bootMode: "uefi"
    blockDeviceMapping:
      - DeviceName: "/dev/sda1"
        Ebs:
          SnapshotId: "snap-1234567890abcdef0"
          VolumeSize: 100
          VolumeType: "gp3"
    rootDeviceName: "/dev/sda1"
    virtualizationType: "hvm"
```

Gunakan output dari nilai tindakan langkah dalam dokumen alur kerja.

```
$.stepOutputs.RegisterNewImage.imageId
```

**Contoh dengan tag SnapshotId dari langkah lain dan snapshot yang disertakan dalam AMI yang dihasilkan**

```
- name: CreateSnapshot
  action: RunCommand
  onFailure: Abort
  inputs:
    instanceId: "i-1234567890abcdef0"
    documentName: "AWS-RunShellScript"
    parameters:
      commands:
        - "aws ec2 create-snapshot --volume-id vol-1234567890abcdef0 --description 'Snapshot for AMI' --query 'SnapshotId' --output text"

- name: RegisterImageFromSnapshot
  action: RegisterImage
  onFailure: Abort
  inputs:
    architecture: "x86_64"
    bootMode: "uefi"
    blockDeviceMapping:
      - DeviceName: "/dev/sda1"
        Ebs:
          SnapshotId.$: "$.stepOutputs.CreateSnapshot.output[0]"
          VolumeSize: 100
          VolumeType: "gp3"
    includeSnapshotTags: true
    rootDeviceName: "/dev/sda1"
    virtualizationType: "hvm"
```

## RunCommand
<a name="wfdoc-step-action-run-command"></a>

Tindakan langkah ini menjalankan dokumen perintah untuk alur kerja Anda. Image Builder menggunakan API Systems Manager untuk menjalankannya untuk Anda. **sendCommand** Untuk informasi selengkapnya, lihat [AWS Systems Manager Menjalankan Perintah](https://docs.aws.amazon.com/systems-manager/latest/userguide/run-command.html).

Batas **Waktu Default:** 720 menit

Batas **Waktu Maks:** 720 menit

**Rollback:** Tidak ada rollback untuk tindakan langkah ini.

**Input:** Tabel berikut mencakup input yang didukung untuk tindakan langkah ini.


| Nama masukan | Deskripsi | Tipe | Diperlukan | Default | Batasan | 
| --- | --- | --- | --- | --- | --- | 
| instanceId | ID dari instance untuk menjalankan dokumen perintah pada. | Tali | Ya |  | Ini harus berupa ID instance keluaran dari langkah alur kerja yang meluncurkan instance untuk alur kerja ini. | 
| documentName | Nama dokumen perintah Systems Manager untuk dijalankan. | Tali | Ya |  |  | 
| parameter | Daftar pasangan nilai kunci untuk parameter apa pun yang diperlukan dokumen perintah. | <string>kamus <string, daftar> | Bersyarat |  |  | 
| DocumentVersion | Versi dokumen perintah untuk dijalankan. | String | Tidak | \$1DEFAULT |  | 

**Output:** Tabel berikut mencakup output untuk tindakan langkah ini.


| Nama output | Deskripsi | Tipe | 
| --- | --- | --- | 
| runCommandId | ID Systems Manager sendCommand yang menjalankan dokumen perintah pada instance. | String | 
| status | Status dikembalikan dari Systems ManagersendCommand. | String | 
| output | Output dikembalikan dari Systems ManagersendCommand. | Daftar string | 

**Contoh**

Tentukan tindakan langkah dalam dokumen alur kerja.

```
- name: RunCommandDoc
  action: RunCommand
  onFailure: Abort
  inputs:
    documentName: SampleDocument
    parameters:
        osPlatform: 
          - "linux"
    instanceId.$: $.stepOutputs.LaunchStep.instanceId
```

Gunakan output dari nilai tindakan langkah dalam dokumen alur kerja.

```
$.stepOutputs.RunCommandDoc.status
```

## RunSysPrep
<a name="wfdoc-step-action-run-sysprep"></a>

Tindakan langkah ini menggunakan API Systems Manager untuk menjalankan `AWSEC2-RunSysprep` dokumen untuk instance Windows sebelum instance build dimatikan untuk snapshot. **sendCommand** Tindakan ini mengikuti [praktik AWS terbaik untuk pengerasan dan pembersihan gambar](https://aws.amazon.com/articles/public-ami-publishing-hardening-and-clean-up-requirements/).

Batas **Waktu Default:** 60 menit

Batas **Waktu Maks:** 720 menit

**Rollback:** Tidak ada rollback untuk tindakan langkah ini.

**Input:** Tabel berikut mencakup input yang didukung untuk tindakan langkah ini.


| Nama masukan | Deskripsi | Tipe | Diperlukan | Default | Batasan | 
| --- | --- | --- | --- | --- | --- | 
| instanceId | ID dari instance untuk menjalankan AWSEC2-RunSysprep dokumen pada. | Tali | Ya |  | Ini harus berupa ID instance keluaran dari langkah alur kerja yang meluncurkan instance untuk alur kerja ini. | 

**Output:** Tabel berikut mencakup output untuk tindakan langkah ini.


| Nama output | Deskripsi | Tipe | 
| --- | --- | --- | 
| runCommandId | ID Systems Manager sendCommand yang menjalankan AWSEC2-RunSysprep dokumen pada instance. | String | 
| status | Status dikembalikan dari Systems ManagersendCommand. | String | 
| output | Output dikembalikan dari Systems ManagersendCommand. | String | 

**Contoh**

Tentukan tindakan langkah dalam dokumen alur kerja.

```
- name: RunSysprep
  action: RunSysPrep
  onFailure: Abort
  inputs:
      instanceId.$: $.stepOutputs.LaunchStep.instanceId
```

Gunakan output dari nilai tindakan langkah dalam dokumen alur kerja.

```
$.stepOutputs.RunSysprep.status
```

## SanitizeInstance
<a name="wfdoc-step-action-sanitize-instance"></a>

Tindakan langkah ini menjalankan skrip sanitasi yang direkomendasikan untuk instance Linux sebelum instance build dimatikan untuk snapshot. Skrip sanitasi membantu memastikan bahwa gambar akhir mengikuti praktik terbaik keamanan, dan artefak atau pengaturan build yang tidak boleh dibawa ke snapshot Anda dihapus. Untuk informasi lebih lanjut tentang skrip, lihat[Diperlukan pembersihan pasca-build](security-best-practices.md#post-build-cleanup). Tindakan langkah ini tidak berlaku untuk gambar kontainer.

Image Builder menggunakan API Systems Manager untuk menjalankan skrip ini. **sendCommand** Untuk informasi selengkapnya, lihat [AWS Systems Manager Menjalankan Perintah](https://docs.aws.amazon.com/systems-manager/latest/userguide/execute-remote-commands.html).

Batas **Waktu Default:** 60 menit

Batas **Waktu Maks:** 720 menit

**Rollback:** Tidak ada rollback untuk tindakan langkah ini.

**Input:** Tabel berikut mencakup input yang didukung untuk tindakan langkah ini.


| Nama masukan | Deskripsi | Tipe | Diperlukan | Default | Batasan | 
| --- | --- | --- | --- | --- | --- | 
| instanceId | ID dari instance untuk membersihkan. | Tali | Ya |  | Ini harus berupa ID instance keluaran dari langkah alur kerja yang meluncurkan instance untuk alur kerja ini. | 

**Output:** Tabel berikut mencakup output untuk tindakan langkah ini.


| Nama output | Deskripsi | Tipe | 
| --- | --- | --- | 
| runCommandId | ID Systems Manager sendCommand yang menjalankan skrip sanitasi pada instance. | String | 
| status | Status dikembalikan dari Systems ManagersendCommand. | String | 
| output | Output dikembalikan dari Systems ManagersendCommand. | String | 

**Contoh**

Tentukan tindakan langkah dalam dokumen alur kerja.

```
- name: SanitizeStep
  action: SanitizeInstance
  onFailure: Abort
  inputs:
      instanceId: $.stepOutputs.LaunchStep.instanceId
```

Gunakan output dari nilai tindakan langkah dalam dokumen alur kerja.

```
$.stepOutputs.SanitizeStep.status
```

## TerminateInstance
<a name="wfdoc-step-action-terminate-instance"></a>

Tindakan langkah ini mengakhiri instance dengan id instance yang diteruskan sebagai input.

Batas **Waktu Default:** 30 menit

Batas **Waktu Maks:** 720 menit

**Rollback:** Tidak ada rollback untuk tindakan langkah ini.

**Input:** Tabel berikut mencakup input yang didukung untuk tindakan langkah ini.


| Nama masukan | Deskripsi | Tipe | Diperlukan | Default | Batasan | 
| --- | --- | --- | --- | --- | --- | 
| instanceId | ID dari instance untuk mengakhiri. | Tali | Ya |  |  | 

**Output:** Tidak ada output untuk tindakan langkah ini.

**Contoh**

Tentukan tindakan langkah dalam dokumen alur kerja.

```
- name: TerminateInstance
  action: TerminateInstance
  onFailure: Continue
  inputs:
      instanceId.$: i-1234567890abcdef0
```

## WaitForAction
<a name="wfdoc-step-action-waitfor"></a>

Tindakan langkah ini menjeda alur kerja yang sedang berjalan dan menunggu untuk menerima tindakan eksternal dari tindakan Image Builder API. **SendWorkflowStepAction** Langkah ini menerbitkan acara ke bus EventBridge EventBridge acara default Anda dengan tipe `EC2 Image Builder Workflow Step Waiting` detail. Langkah ini juga dapat mengirim pemberitahuan SNS jika Anda memberikan ARN Topik SNS, atau menjalankan fungsi Lambda secara asinkron jika Anda memberikan nama fungsi Lambda.

Batas **Waktu Default:** 3 hari

Batas **Waktu Maks:** 7 hari

**Rollback:** Tidak ada rollback untuk tindakan langkah ini.

**Input:** Tabel berikut mencakup input yang didukung untuk tindakan langkah ini.


| Nama masukan | Deskripsi | Tipe | Diperlukan | Default | Batasan | 
| --- | --- | --- | --- | --- | --- | 
| snsTopicArn | Topik SNS opsional ARN untuk mengirim pemberitahuan saat langkah alur kerja tertunda. | String | Tidak |  |  | 
| lambdaFunctionName | Nama opsional atau ARN dari fungsi Lambda untuk memanggil secara asinkron saat langkah alur kerja tertunda. | String | Tidak |  |  | 
| payload | String JSON digunakan sebagai pesan untuk SNS dan payload untuk Lambda. Jika disediakan, payload khusus dibungkus secara defaultmessage/payload, used for SNS and Lambda respectively. If not provided, generates default message/payload. | String | Tidak |  | Harus string JSON yang valid, maks 16 KiB | 

**Output:** Tabel berikut mencakup output untuk tindakan langkah ini.


| Nama output | Deskripsi | Tipe | 
| --- | --- | --- | 
| tindakan | Tindakan yang dikembalikan oleh tindakan SendWorkflowStepAction API. | String (RESUMEatauSTOP) | 
| akal budi | Alasan untuk tindakan yang dikembalikan. | String | 

**Izin IAM diperlukan**

Peran eksekusi kustom Anda harus memiliki izin berikut untuk menggunakan tindakan langkah ini:

**Izinkan tindakan**
+ `lambda:InvokeFunction`

**Tentukan sumber daya**
+ `arn:aws:lambda:us-west-2:111122223333:function:function-name`
+ `arn:aws:lambda:us-west-2:111122223333:function:*`

**Contoh**

Tentukan tindakan langkah dalam dokumen alur kerja dengan pemberitahuan SNS.

```
- name: SendEventAndWait
  action: WaitForAction
  onFailure: Abort
  inputs:
    snsTopicArn: arn:aws:sns:us-west-2:111122223333:ExampleTopic
```

Tentukan tindakan langkah dalam dokumen alur kerja dengan pemanggilan fungsi Lambda.

```
- name: SendEventAndWaitWithLambda
  action: WaitForAction
  onFailure: Abort
  inputs:
    lambdaFunctionName: ExampleFunction
    payload: |
      {
        "imageId": "{{ $.stepOutputs.CreateImageFromInstance.imageId }}",
        "region": "us-west-2"
      }
```

Gunakan output dari nilai tindakan langkah dalam dokumen alur kerja.

```
$.stepOutputs.SendEventAndWait.reason
```

## WaitForSSMAgent
<a name="wfdoc-step-action-wait-for-ssm-agent"></a>

Tindakan langkah ini menunggu sebuah EC2 contoh untuk dikelola AWS Systems Manager setelah periode yang tidak responsif yang diharapkan. Ini sangat berharga untuk alur kerja dengan interupsi instance yang diketahui, seperti reboot sistem, peningkatan OS, atau operasi khusus platform yang memutuskan sementara instance dari SSM. Image Builder memantau instance hingga mendapatkan kembali konektivitas SSM atau waktu habis.

Batas **Waktu Default:** 60 menit

Batas **Waktu Maks:** 180 menit

**Rollback:** Tidak ada rollback untuk tindakan langkah ini.

**Input:** Tabel berikut mencakup input yang didukung untuk tindakan langkah ini.


| Nama masukan | Deskripsi | Tipe | Diperlukan | Default | Batasan | 
| --- | --- | --- | --- | --- | --- | 
| instanceId | ID instance untuk memantau konektivitas SSM. | Tali | Ya |  | Harus berupa ID EC2 instance yang valid | 

**Output:** Tabel berikut mencakup output untuk tindakan langkah ini.


| Nama output | Deskripsi | Tipe | 
| --- | --- | --- | 
| status | Status koneksi Agen SSM. | String | 

**Contoh**

Tentukan tindakan langkah dalam dokumen alur kerja.

```
- name: WaitForInstanceAfterReboot
  action: WaitForSSMAgent
  onFailure: Abort
  timeoutInSeconds: 900
  inputs:
    instanceId.$: $.stepOutputs.LaunchStep.instanceId
```

Gunakan output dari nilai tindakan langkah dalam dokumen alur kerja.

```
$.stepOutputs.WaitForInstanceAfterReboot.Status
```

# Gunakan variabel dinamis dalam dokumen alur kerja Anda
<a name="wfdoc-dynamic-vars"></a>

Anda dapat menggunakan variabel dinamis dalam dokumen alur kerja Anda untuk mewakili nilai yang bervariasi saat runtime untuk proses pembuatan gambar Anda. Interpolasi string untuk variabel dinamis memungkinkan Anda untuk menyematkan JSONPath ekspresi dalam konten terstruktur seperti string JSON.Ini sangat berguna ketika Anda perlu meneruskan nilai runtime dalam muatan kompleks ke tindakan langkah seperti atau. `ExecuteStateMachine` `WaitForAction`

Untuk menggunakan interpolasi string untuk variabel dinamis, bungkus JSONPath ekspresi dalam kurung kurawal ganda `"{{...}}"` dalam konten string Anda. Hanya JSONPath ekspresi yang dibungkus dalam kurung kurawal ganda yang diproses sebagai variabel. JSONPath Ekspresi apa pun yang tidak dibungkus dalam kurung kurawal ganda diperlakukan sebagai konten string literal.

**JSONPath sintaks variabel alur kerja dinamis**

```
$.<document structure>.[<step name>.]<variable name>
```

Nilai variabel dinamis direpresentasikan sebagai JSONPath pemilih dengan node struktural yang secara unik mengidentifikasi variabel target. Node pertama setelah root (\$1) mengacu pada struktur dokumen alur kerja, seperti`stepOutputs`, atau dalam kasus variabel sistem Image Builder,`imageBuilder`. Daftar berikut berisi node struktur dokumen JSONPath alur kerja yang didukung.

**Node struktur dokumen**
+ parameter - Parameter alur kerja
+ StepOutputs - Output dari langkah dalam dokumen alur kerja yang sama
+ WorkflowOutputs - Output dari dokumen alur kerja yang sudah berjalan
+ imagebuilder - variabel sistem Image Builder

Node struktur `parameters` dan `stepOutputs` dokumen menyertakan node opsional untuk nama langkah. Ini membantu memastikan nama variabel unik di semua langkah.

Node terakhir dalam JSONPath adalah nama variabel target, seperti`instanceId`.

Setiap langkah dapat merujuk ke output dari setiap tindakan langkah sebelumnya dengan variabel JSONPath dinamis ini. Ini juga dikenal sebagai *rantai, atau referensi*. Untuk merujuk ke output dari tindakan langkah sebelumnya, Anda dapat menggunakan variabel dinamis berikut.

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

**penting**  
Ketika parameter input mengacu pada variabel dinamis, indikator rantai (`.$`) harus dilampirkan ke akhir nama parameter.

**Contoh 1: Indikator rantai parameter masukan**

Contoh berikut menunjukkan parameter input yang menggunakan interpolasi string untuk menyelesaikan variabel dinamis dalam nilai parameter saat runtime.

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

**Contoh 2: Interpolasi string dalam variabel dinamis**

Contoh berikut menunjukkan bagaimana variabel dinamis menggunakan interpolasi string untuk menentukan nilai saat runtime.

```
- name: ValidateImageConfiguration
  action: ExecuteStateMachine
  inputs:
    stateMachineArn: arn:aws:states:us-east-1:111122223333:stateMachine:ImageValidation
    input: |
      {
        "imageId": "{{ $.stepOutputs.CreateImageFromInstance.imageId }}",
        "region": "us-east-1",
        "buildDate": "{{ $.imagebuilder.dateTime }}",
        "instanceType": "{{ $.stepOutputs.LaunchStep.instanceType }}"
      }
```

Dalam contoh ini, JSONPath ekspresi yang dibungkus dengan tanda kurung kurawal ganda diselesaikan saat runtime:
+ `{{ $.stepOutputs.CreateImageFromInstance.imageId }}`- Menyelesaikan ke ID gambar aktual dari langkah CreateImageFromInstance 
+ `{{ $.imagebuilder.dateTime }}`- Menyelesaikan ke stempel waktu build saat ini. Lihat [Gunakan variabel sistem Image Builder](#wfdoc-ib-vars) daftar variabel sistem Image Builder yang dapat Anda gunakan.
+ `{{ $.stepOutputs.LaunchStep.instanceType }}`- Menyelesaikan ke jenis instance yang digunakan dalam LaunchStep

String literal seperti `"region": "us-east-1"` tetap tidak berubah.

**catatan**  
Interpolasi string berfungsi dengan konten string apa pun dalam dokumen alur kerja Anda, termasuk string multiline menggunakan operator pipa YAMAL (). `|` Persyaratan kurung kurawal bertindak sebagai mekanisme pelarian untuk membedakan dengan jelas antara JSONPath variabel dan konten teks literal.

## Gunakan variabel sistem Image Builder
<a name="wfdoc-ib-vars"></a>

Image Builder menyediakan variabel sistem berikut yang dapat Anda gunakan dalam dokumen alur kerja Anda:


|  Nama variabel  |  Deskripsi  |  Tipe  |  Nilai contoh  | 
| --- | --- | --- | --- | 
|  cloudWatchLogKelompok  |  Nama grup CloudWatch Log untuk log keluaran. Format: `/aws/imagebuilder/<recipe-name>`  |  String  |  `/aws/imagebuilder/sampleImageRecipe`  | 
|  cloudWatchLogStreaming  |  Nama aliran CloudWatch Log untuk log keluaran.  |  String  |  *1.0.0/1*  | 
|  collectImageMetadata  |  Pengaturan yang mengarahkan Image Builder apakah akan mengumpulkan metadata instance.  |  Boolean  |  `true` \$1 `false`  | 
|  collectImageScanTemuan  |  Nilai setelan saat ini yang memungkinkan Image Builder mengumpulkan temuan pemindaian gambar.  |  Boolean  |  `true` \$1 `false`  | 
|  imageBuildNumber  |  Nomor versi build gambar.  |  Bilangan Bulat  |  *1*  | 
|  imageId  |  Id AMI dari gambar dasar.  |  String  |  *ami-1234567890abcdef1*  | 
|  ImageName  |  Nama gambar.  |  String  |  *sampleImage*  | 
|  ImageType  |  Jenis output gambar.  |  String  |  `AMI` \$1 `Docker`  | 
|  imageVersionNumber  |  Nomor versi gambar.  |  String  |  *1.0.0*  | 
|  instanceProfileName  |  Nama peran profil instance yang digunakan Image Builder untuk meluncurkan instance build dan test.  |  String  |  *SampleImageBuilderInstanceProfileRole*  | 
|  platform  |  Platform sistem operasi dari gambar yang dibangun.  |  String  |  `Linux` \$1 `Windows` \$1 `MacOS`  | 
|  S3log  |  Objek JSON yang berisi konfigurasi untuk log S3 yang ditulis Image Builder.  |  Objek JSON  |  \$1'S3logs': \$1's3 BucketName ':' ', 's3 *sample-bucket*KeyPrefix': ''\$1\$1 *ib-logs*  | 
|  securityGroups  |  Grup keamanan IDs yang berlaku untuk membangun dan menguji instance.  |  Daftar [String]  |  *[sg-1234567890abcdef1, sg-11112222333344445]*  | 
|  SourceImagearn  |  Nama Sumber Daya Amazon (ARN) dari sumber daya image Image Builder yang digunakan alur kerja untuk tahap pembuatan dan pengujian.  |  String  |  arn:aws:imagebuilder: ::image//*us-east-1**111122223333**sampleImage**1.0.0/1*  | 
|  subnetId  |  ID subnet untuk meluncurkan instance build dan test ke dalam.  |  String  |  *subnet-1234567890abcdef1*  | 
|  terminateInstanceOnKegagalan  |  Nilai setelan saat ini yang mengarahkan Image Builder untuk menghentikan instance jika gagal atau menyimpannya untuk pemecahan masalah.  |  Boolean  |  `true` \$1 `false`  | 
|  WorkflowPhase  |  Tahap saat ini yang berjalan untuk eksekusi alur kerja.  |  String  |  `Build` \$1 `Test`  | 
|  workingDirectory  |  Jalur ke direktori kerja.  |  String  |  `/tmp`  | 

# Gunakan pernyataan bersyarat dalam langkah alur kerja Anda
<a name="wfdoc-conditional-statements"></a>

Pernyataan bersyarat dimulai dengan atribut dokumen `if` pernyataan. Tujuan akhir dari `if` pernyataan ini adalah untuk menentukan apakah akan menjalankan tindakan langkah atau melewatinya. Jika `if` pernyataan terselesaikan`true`, maka tindakan langkah berjalan. Jika diselesaikan`false`, Image Builder melewatkan tindakan langkah dan mencatat status langkah `SKIPPED` di log.

`if`Pernyataan ini mendukung pernyataan percabangan (`and`,`or`) dan pengubah bersyarat (). `not` Ini juga mendukung operator perbandingan berikut yang melakukan perbandingan nilai (sama, kurang dari, lebih besar dari) berdasarkan tipe data yang dibandingkannya (string atau angka).

**Operator perbandingan yang didukung**
+ `booleanEquals`
+ `numberEquals`
+ `numberGreaterThan`
+ `numberGreaterThanEquals`
+ `numberLessThan`
+ `numberLessThanEquals`
+ `stringEquals`

**Aturan untuk pernyataan percabangan dan pengubah bersyarat**  
Aturan berikut berlaku untuk pernyataan percabangan (`and`,`or`) dan pengubah bersyarat (). `not`
+ Pernyataan percabangan dan pengubah bersyarat harus muncul pada baris sendiri.
+ Pernyataan percabangan dan pengubah bersyarat harus mengikuti aturan level.
  + Hanya ada satu pernyataan di tingkat induk.
  + Setiap cabang anak atau pengubah memulai level baru.

  Untuk informasi lebih lanjut tentang level, lihat[Level bersarang dalam pernyataan bersyarat](#wfdoc-conditional-structure).
+ Setiap pernyataan percabangan harus memiliki setidaknya satu pernyataan bersyarat anak, tetapi tidak lebih dari sepuluh.
+ Pengubah bersyarat beroperasi hanya pada satu pernyataan bersyarat anak.

## Level bersarang dalam pernyataan bersyarat
<a name="wfdoc-conditional-structure"></a>

Pernyataan bersyarat beroperasi pada beberapa tingkatan di bagian mereka sendiri. Misalnya, atribut `if` pernyataan muncul pada tingkat yang sama dalam dokumen alur kerja Anda sebagai nama langkah dan tindakan. Ini adalah dasar dari pernyataan bersyarat.

Anda dapat menentukan hingga empat tingkat pernyataan bersyarat, tetapi hanya satu pernyataan yang dapat muncul di tingkat induk. Semua pernyataan percabangan lainnya, pengubah bersyarat, atau operator bersyarat diindentasi dari sana, satu indentasi per level.

Garis besar berikut menunjukkan jumlah maksimum level bersarang untuk pernyataan bersyarat.

```
base:
  parent: 
    - child (level 2)
        - child (level 3)
            child (level 4)
```

`if`atribut  
`if`Atribut menentukan pernyataan bersyarat sebagai atribut dokumen. Ini adalah level nol.

Tingkat orang tua  
Ini adalah tingkat pertama bersarang untuk pernyataan bersyarat. Hanya ada satu pernyataan di level ini. Jika Anda tidak memerlukan percabangan atau pengubah, ini bisa menjadi operator bersyarat tanpa pernyataan anak. Level ini tidak menggunakan notasi dasbor, kecuali untuk operator bersyarat.

Tingkat anak  
Tingkat dua hingga empat dianggap tingkat anak. Pernyataan anak dapat mencakup pernyataan percabangan, pengubah bersyarat, atau operator bersyarat.

**Contoh: Level bersarang**  
Contoh berikut menunjukkan jumlah maksimum level dalam pernyataan bersyarat.

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

**Aturan bersarang**
+ Setiap cabang atau pengubah di tingkat anak memulai level baru.
+ Setiap level menjorok.
+ Ada maksimal empat level, termasuk satu pernyataan, pengubah, atau operator di tingkat induk, dan hingga tiga level tambahan.

## Contoh pernyataan bersyarat
<a name="wfdoc-conditional-examples"></a>

Kelompok contoh ini menunjukkan berbagai aspek pernyataan bersyarat.

**Percabangan: dan**  
Pernyataan `and` percabangan beroperasi pada daftar ekspresi yang merupakan anak-anak dari cabang, yang semuanya harus dievaluasi. `true` Image Builder mengevaluasi ekspresi dalam urutan yang muncul dalam daftar. Jika ada ekspresi yang dievaluasi`false`, maka pemrosesan berhenti dan cabang dipertimbangkan`false`.

Contoh berikut mengevaluasi`true`, karena kedua ekspresi mengevaluasi. `true`

```
if:
  and:
    - stringEquals: 'test_string'
      value: 'test_string'
    - numberEquals: 1
      value: 1
```

**Percabangan: atau**  
Pernyataan `or` percabangan beroperasi pada daftar ekspresi yang merupakan anak-anak dari cabang, setidaknya salah satunya harus dievaluasi. `true` Image Builder mengevaluasi ekspresi dalam urutan yang muncul dalam daftar. Jika ada ekspresi yang dievaluasi`true`, maka pemrosesan berhenti dan cabang dipertimbangkan`true`.

Contoh berikut mengevaluasi`true`, meskipun ekspresi pertama adalah`false`.

```
if:
  or:
    - stringEquals: 'test_string'
      value: 'test_string_not_equal'
    - numberEquals: 1
      value: 1
```

**Pengubah bersyarat: tidak**  
Pengubah `not` bersyarat meniadakan pernyataan bersyarat yang merupakan turunan dari cabang.

Contoh berikut mengevaluasi `true` kapan `not` pengubah meniadakan pernyataan bersyarat. `stringEquals`

```
if:
  not:
    - stringEquals: 'test_string'
      value: 'test_string_not_equal'
```

**Pernyataan bersyarat: BooleanEquals**  
Operator `booleanEquals` perbandingan membandingkan nilai Boolean dan mengembalikan nilai true jika nilai Boolean sama persis.

Contoh berikut menentukan apakah `collectImageScanFindings` diaktifkan.

```
if:
  - booleanEquals: true
    value: '$.imagebuilder.collectImageScanFindings'
```

**Pernyataan bersyarat: StringEquals**  
Operator `stringEquals` perbandingan membandingkan dua string dan mengembalikan nilai true jika string sama persis. Jika salah satu nilai bukan string, Image Builder mengubahnya menjadi string sebelum dibandingkan.

Contoh berikut membandingkan variabel sistem platform untuk menentukan apakah alur kerja berjalan pada platform Linux.

```
if:
  - stringEquals: 'Linux'
    value: '$.imagebuilder.Platform'
```

**Pernyataan bersyarat: NumberEquals**  
Operator `numberEquals` perbandingan membandingkan dua angka dan mengembalikan nilai true jika angkanya sama. Angka-angka untuk membandingkan harus menjadi salah satu format berikut.
+ Bilangan Bulat
+ Desimal
+ String yang cocok dengan pola regex berikut:. `^-?[0-9]+(\.)?[0-9]+$`

Contoh perbandingan berikut semuanya mengevaluasi. `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
```