View a markdown version of this page

Membuat dokumen alur kerja YAMAL - EC2 Image Builder

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

Membuat dokumen alur kerja YAMAL

Dokumen definisi format YAMAL 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 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

Bagian berikut menjelaskan struktur dokumen alur kerja YAMAL yang digunakan Image Builder untuk melakukan tindakan pembuatan, pengujian, dan distribusi gambar.

Identifikasi dokumen alur kerja

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

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, ataustringList. Jika Anda tidak menentukan default nilai untuk parameter, Anda harus memberikan nilai parameter saat runtime.

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:

  • string

  • integer

  • boolean

  • stringList

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 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 pemilih JsonPath. Contoh:

$.stepOutputs.step-name.output-name

Untuk informasi selengkapnya, lihat Gunakan variabel dinamis dalam dokumen alur kerja Anda.

catatan

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

catatan

Jika Anda menetapkan waitSeconds langkah, nilainya harus kurang daritimeoutSeconds. Setiap langkah tindakan juga mendefinisikan timeoutSeconds nilai maksimum. Jika Anda menetapkan 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

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

  • Kondisi percabangan dan pengubah:if,,and,or. not Kondisi percabangan ditentukan pada garis sendiri.

  • Operator perbandingan:booleanEquals,numberEquals,numberGreaterThan,numberGreaterThanEquals,numberLessThan,numberLessThanEquals,stringEquals.

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 variabel JsonPath 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.

Perilaku
  • Abort— Gagal langkah, gagal alur kerja, dan tidak menjalankan langkah yang tersisa setelah langkah yang gagal. Jika rollback diaktifkan, rollback dimulai dengan langkah yang gagal, dan berlanjut hingga semua langkah yang memungkinkannya diputar kembali.

  • Continue— Gagal langkah, tetapi terus menjalankan langkah-langkah yang tersisa setelah langkah yang gagal. Dalam hal ini, tidak ada rollback.

String

Tidak

Abort

Abort | Continue

coba lagi

Mengkonfigurasi Image Builder untuk secara otomatis menjalankan langkah lagi jika gagal. Untuk informasi selengkapnya, lihat Coba lagi langkah alur kerja yang gagal.

Dikte

Tidak

Tidak ada percobaan ulang

retryAtribut berisi bidang-bidang berikut:

  • maxAttempts(wajib) — Jumlah total kali langkah dapat dijalankan, termasuk upaya pertama. Nilai yang valid: 1—10.

  • backoffSeconds(opsional) - Jumlah detik yang Image Builder menunggu sebelum memulai setiap percobaan ulang. Jika Anda tidak menetapkan nilai, Image Builder menunggu 30 detik. Nilai yang valid: 0—600.

RollBackenabled

Mengkonfigurasi apakah langkah akan diputar kembali jika terjadi kegagalan. Anda dapat menggunakan nilai Boolean statis atau variabel JSONPath dinamis yang menyelesaikan nilai Boolean.

Boolean

Tidak

true

true | false

| atau variabel JsonPath yang menyelesaikan ke true atau false.

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"

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. retryAtribut berisi bidang-bidang berikut.

  • maxAttempts(wajib) — Jumlah total kali langkah dapat dijalankan, termasuk upaya pertama. Misalnya, jika Anda menyetel maxAttempts ke 3 dan setiap upaya gagal, langkah berjalan tiga kali sebelum Image Builder menandainya sebagai gagal. Nilai yang valid: 1—10.

  • backoffSeconds(opsional) - Jumlah detik yang Image Builder menunggu sebelum memulai setiap percobaan ulang. Jika Anda tidak menetapkan nilai, Image Builder menunggu 30 detik. Untuk segera mencoba lagi, atur nilainya ke0. Nilai yang valid: 0—600.

Coba ulang berfungsi sebagai berikut:

  • timeoutSecondsNilai untuk langkah ini berlaku untuk setiap upaya secara terpisah. Jam batas waktu dimulai ulang saat upaya coba lagi dimulai.

  • Jika langkah masih gagal setelah upaya terakhir, onFailure perilaku untuk langkah tersebut berlaku.

Beberapa tindakan langkah memiliki perilaku coba lagi tambahan:

  • Sebelum mencoba ulang LaunchInstance langkah, Image Builder menghentikan instance yang diluncurkan oleh upaya gagal. Upaya coba lagi meluncurkan instance baru.

  • Ketika mencoba ulang ExecuteComponents langkah, Image Builder menjalankan komponen Anda lagi dari awal. Itu tidak membatalkan perubahan yang telah dilakukan upaya gagal pada instance. Sebelum Anda mengonfigurasi percobaan ulang untuk langkah yang menjalankan komponen, pastikan komponen Anda dapat berjalan dengan aman lebih dari satu kali.

Untuk melihat berapa kali langkah dijalankan, gunakan operasi GetWorkflowStepExecution atau ListWorkflowStepExecutions API. Tanggapan mencakup attemptNumber dan maxAttempts bidang untuk langkah tersebut.

catatan

retryAtribut untuk langkah alur kerja terpisah dari maxAttempts bidang, yang mencoba ulang langkah individual dalam dokumen AWSTOE 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 dengan nama dengan$.workflowOutputs.name.

catatan

Anda mereferensikan output dari langkah dalam alur kerja yang sama dengan$.stepOutputs.stepName.field, tetapi Anda mereferensikan output dari alur kerja sebelumnya hanya dengan nama keluaran ($.workflowOutputs.name) dan tanpa nama langkah.

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.

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