Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Membuat dokumen alur kerja YAML
Dokumen definisi format YAML mengonfigurasi langkah input, output, dan alur kerja untuk tahap pembuatan, pengujian, dan distribusi proses pembuatan gambar. Format dokumen yang sama berlaku untuk ketiga jenis alur kerja. Anda dapat mulai dari template yang menyertakan langkah-langkah standar, atau Anda dapat mulai dari awal untuk menentukan alur kerja Anda sendiri. Baik Anda menggunakan template atau memulai dari awal, Anda dapat menyesuaikan alur kerja agar sesuai dengan kebutuhan Anda.
Struktur dokumen alur kerja YAML
Bagian berikut menjelaskan struktur dokumen alur kerja YAML yang digunakan Image Builder untuk melakukan tindakan pembuatan, pengujian, dan distribusi gambar.
Identifikasi dokumen alur kerja
Secara unik mengidentifikasi alur kerja. Bagian ini dapat mencakup atribut berikut.
|
Bidang |
Deskripsi |
Jenis |
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 input dokumen alur kerja
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.
Anda dapat menentukan hingga 25 parameter dalam dokumen alur kerja. Setiap nilai parameter dapat berisi hingga 1.024 karakter. Parameter harus menggunakan salah satu dari empat tipe data yang didukung: string, integer, boolean, atau stringList. Jika Anda tidak menentukan a default nilai untuk parameter, Anda harus memberikan nilai parameter saat runtime.
|
Bidang |
Deskripsi |
Jenis |
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 |
Jenis data parameter. Jika Anda tidak menyertakan tipe data dalam definisi parameter, tipe parameter default ke nilai string yang diperlukan saat runtime. |
String |
Tidak |
Tipe data parameter harus salah satu dari berikut ini:
|
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
Menentukan hingga 15 langkah tindakan untuk alur kerja. Langkah-langkah berjalan sesuai urutan yang ditentukan 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 pada output dari tindakan langkah sebelumnya. Hal ini dikenal sebagai merantainya, atau mereferensikan. Untuk merujuk ke output dari tindakan langkah sebelumnya, Anda dapat menggunakan pemilih JSONPath. Contoh:
$.stepOutputs.step-name.output-name
Untuk informasi selengkapnya, lihat Menggunakan variabel dinamis dalam dokumen alur kerja.
catatan
Meskipun langkah itu sendiri tidak memiliki atribut output, output apa pun dari tindakan langkah disertakan dalam stepOutput untuk langkahnya.
catatan
Jika Anda mengatur waitSeconds untuk satu langkah, nilainya harus kurang dari timeoutSeconds. Setiap langkah tindakan juga menentukan maksimum timeoutSeconds nilai. Jika Anda mengatur timeoutSeconds lebih tinggi dari maksimum untuk tindakan, validasi gagal. Untuk maksimum per tindakan, lihat Tindakan langkah yang didukung untuk dokumen alur kerja Anda.
Setiap langkah dapat mencakup atribut berikut.
|
Bidang |
Deskripsi |
Jenis |
Diperlukan |
Nilai default |
Batasan |
|---|---|---|---|---|---|
|
tindakan |
Tindakan alur kerja yang dilakukan langkah ini. |
Tali |
Ya |
Harus merupakan tindakan langkah yang didukung untuk dokumen alur kerja Pembuat Gambar. |
|
|
|
Pernyataan bersyarat menambahkan aliran titik keputusan kontrol ke badan langkah alur kerja Anda. |
Dict |
Tidak |
Image Builder mendukung pernyataan kondisional berikut sebagai pengubah
|
|
|
deskripsi |
Deskripsi langkah. |
String |
Tidak |
String kosong tidak diperbolehkan. Jika disertakan, panjangnya harus 1-1024 karakter. |
|
|
masukan |
Berisi parameter yang perlu dijalankan tindakan langkah. Anda dapat menentukan nilai kunci sebagai nilai statis, atau dengan variabel JSONPath yang diselesaikan ke tipe data yang benar. |
Dict |
Ya |
||
|
name |
Nama langkah. Nama ini harus unik dalam dokumen alur kerja. |
Tali |
Ya |
Panjang harus antara 3-128 karakter. Dapat mencakup karakter alfanumerik dan |
|
|
onFailure |
Mengkonfigurasi tindakan yang akan diambil jika langkah gagal, sebagai berikut. Perilaku
|
String |
Tidak |
|
|
|
coba lagi |
Mengkonfigurasi Image Builder untuk secara otomatis menjalankan langkah lagi jika gagal. Untuk informasi selengkapnya, lihat Coba lagi langkah alur kerja yang gagal. |
Dict |
Tidak |
Tidak ada percobaan ulang |
|
|
RollbackDiaktifkan |
Mengkonfigurasi apakah langkah akan diputar kembali jika terjadi kegagalan. Anda dapat menggunakan nilai Boolean statis atau variabel JSONPath dinamis yang diselesaikan ke nilai Boolean. |
Boolean |
Tidak |
|
|
|
timeoutSeconds |
Waktu maksimum, dalam 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 maksimum tindakan langkah |
|
Tunggu sedetik |
Waktu, dalam detik, di mana eksekusi langkah akan berhenti. |
Bilangan Bulat |
Tidak |
0 |
Tidak boleh lebih dari timeoutSeconds dari tindakan langkah |
Contoh
Contoh berikut menggunakan waitForActionAtEnd parameter, yang harus dinyatakan dokumen alur kerja di dalamnya parameters bagian.
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"
Coba lagi langkah alur kerja yang gagal
Secara default, setiap langkah dalam alur kerja berjalan satu kali. Agar Image Builder secara otomatis menjalankan langkah lagi ketika gagal, tambahkan retry atribut ke langkah. retry atribut berisi bidang berikut.
-
maxAttempts(wajib) — Jumlah total langkah dapat dijalankan, termasuk upaya pertama. Misalnya, jika Anda mengaturmaxAttemptskepada3dan setiap upaya gagal, langkah berjalan tiga kali sebelum Image Builder menandainya sebagai gagal. Nilai yang valid: 1—10. -
backoffSeconds(opsional) — Jumlah detik yang ditunggu Pembuat Gambar sebelum memulai setiap percobaan coba lagi. Jika Anda tidak menetapkan nilai, Pembuat Gambar menunggu 30 detik. Untuk segera mencoba lagi, atur nilainya ke0. Nilai yang valid: 0—600.
Percobaan ulang berfungsi sebagai berikut:
-
Yang
timeoutSecondsnilai untuk langkah berlaku untuk setiap upaya secara terpisah. Jam batas waktu dimulai ulang saat percobaan ulang dimulai. -
Jika langkah tersebut masih gagal setelah upaya terakhir,
onFailureperilaku untuk langkah tersebut berlaku.
Beberapa tindakan langkah memiliki perilaku coba ulang tambahan:
-
Sebelum mencoba lagi a
LaunchInstancelangkah, Pembuat Gambar mengakhiri instance yang diluncurkan oleh upaya gagal. Upaya coba lagi meluncurkan instance baru. -
Ketika mencoba lagi
ExecuteComponentslangkah, Image Builder menjalankan komponen Anda lagi dari awal. Itu tidak membatalkan perubahan yang telah dilakukan oleh upaya gagal pada instance. Sebelum Anda mengonfigurasi percobaan ulang untuk langkah yang menjalankan komponen, pastikan bahwa komponen Anda dapat berjalan dengan aman lebih dari satu kali.
Untuk melihat berapa kali satu langkah berjalan, gunakan GetWorkflowStepExecution atau ListWorkflowStepExecutions Operasi API. Jawabannya meliputi attemptNumber dan maxAttempts bidang untuk langkah.
catatan
Yang retry atribut untuk langkah alur kerja terpisah dari maxAttempts bidang, yang mencoba lagi langkah individu dalam AWSTOE dokumen komponen. Untuk informasi selengkapnya, lihat Gunakan AWSTOE kerangka dokumen komponen untuk komponen khusus.
Contoh
steps: - name: LaunchBuildInstance action: LaunchInstance onFailure: Abort retry: maxAttempts: 3 backoffSeconds: 60 inputs: waitFor: "ssmAgent"
Output dokumen alur kerja
Mendefinisikan output untuk alur kerja. Setiap output adalah pasangan nilai kunci yang menentukan nama output dan nilainya. Anda dapat menggunakan output untuk mengekspor data saat runtime yang dapat digunakan alur kerja berikutnya. Bagian ini opsional.
Anda dapat menentukan hingga 25 output dalam dokumen alur kerja. Setiap nama keluaran harus unik di semua alur kerja yang Anda sertakan dalam pipeline Anda. Alur kerja selanjutnya dapat mereferensikan output berdasarkan nama dengan $.workflowOutputs..name
catatan
Anda mereferensikan output dari langkah di sama alur kerja dengan $.stepOutputs., tetapi Anda mereferensikan output dari tadi alur kerja hanya dengan nama keluaran (stepName.field$.workflowOutputs.) dan tidak ada nama langkah.name
Setiap output yang Anda tentukan mencakup atribut berikut.
|
Bidang |
Deskripsi |
Jenis |
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 dinamis, seperti file output dari tindakan langkah. Untuk informasi selengkapnya, lihat Menggunakan variabel dinamis dalam dokumen alur kerja. |
Tali |
Ya |
Contoh
Buat ID gambar keluaran untuk dokumen alur kerja dengan keluaran langkah dari createProdImage langkah.
outputs: - name: 'outputImageId' value: '$.stepOutputs.createProdImage.imageId'
Lihat output alur kerja di alur kerja berikutnya.
$.workflowOutputs.outputImageId