View a markdown version of this page

Menggunakan variabel dinamis dalam dokumen alur kerja Anda - EC2 Image Builder

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

Menggunakan variabel dinamis dalam dokumen alur kerja Anda

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

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

sintaks variabel alur kerja dinamis JSONPath

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

Nilai variabel dinamis direpresentasikan sebagai pemilih JSONPath dengan node struktural yang secara unik mengidentifikasi variabel target. Node pertama setelah root ($) mengacu pada struktur dokumen alur kerja, sepertistepOutputs, atau dalam kasus variabel sistem Pembuat Gambar,imageBuilder. Daftar berikut berisi node struktur dokumen alur kerja JSONPath 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 Pembuat Gambar

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

Node terakhir di JSONPath adalah nama variabel target, seperti. instanceId

Setiap langkah dapat merujuk ke output dari tindakan langkah sebelumnya dengan variabel dinamis JSONPath ini. Ini juga dikenal sebagai rantai, atau referensi. Untuk merujuk pada 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 input

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 pada 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, ekspresi JSONPath yang dibungkus dengan kurung kurung keriting 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 Pembuat Gambar untuk daftar variabel sistem Pembuat Gambar yang dapat Anda gunakan.

  • {{ $.stepOutputs.LaunchStep.instanceType }}- Menyelesaikan ke jenis instance yang digunakan di LaunchStep

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

catatan

Interpolasi string bekerja dengan konten string apa pun dalam dokumen alur kerja Anda, termasuk string multiline menggunakan operator pipa YAML (). | Persyaratan penjepit keriting bertindak sebagai mekanisme pelarian untuk membedakan dengan jelas antara variabel JSONPath dan konten teks literal.

Gunakan variabel sistem Pembuat Gambar

Image Builder menyediakan variabel sistem berikut yang dapat Anda gunakan dalam dokumen alur kerja Anda. Ini adalah nilai read-only yang diisi Image Builder saat runtime. Anda mereferensikan variabel sistem dengan simpul struktur imagebuilder dokumen, misalnya$.imagebuilder.platform.

Nama variabel

Deskripsi

Tipe

Nilai contoh

awan WatchLogGroup

Nama grup Logs untuk CloudWatch log keluaran.

Format: /aws/imagebuilder/<recipe-name>

String

/aws/imagebuilder/sampleImageRecipe

awan WatchLogStream

Nama aliran Logs untuk CloudWatch log keluaran.

String

1.0.0/1

mengumpulkan ImageMetadata

Pengaturan yang mengarahkan Image Builder apakah akan mengumpulkan metadata instance.

Boolean

true | false

mengumpulkan ImageScanFindings

Nilai setelan saat ini yang memungkinkan Pembuat Gambar untuk mengumpulkan temuan pemindaian gambar.

Boolean

true | false

gambar BuildNumber

Nomor versi build gambar.

Bilangan Bulat

1

imageId

ID AMI dari gambar dasar.

String

ami-1234567890abcdef1

Nama gambar

Nama gambar.

String

sampleImage

Jenis gambar

Jenis keluaran gambar.

String

AMI | Docker

gambar VersionNumber

Nomor versi gambar.

String

1.0.0

contoh ProfileName

Nama peran profil instance yang digunakan Image Builder untuk meluncurkan instance build dan menguji.

String

SampleImageBuilderInstanceProfileRole

platform

Platform sistem operasi dari gambar yang dibangun.

String

Linux | Windows | MacOS

S3log

Objek JSON yang berisi konfigurasi untuk log S3 yang ditulis Image Builder.

Objek JSON

{'S3log': {'s3 BucketName ':' ', 's3sample-bucket': KeyPrefix ''}} ib-logs

securityGroups

ID grup keamanan yang berlaku untuk membangun dan menguji instance.

Daftar [String]

[sg-1234567890abcdef1, sg-11112222333344445]

SumberImageLearn

Nama Sumber Daya Amazon (ARN) dari sumber daya gambar Pembuat Gambar yang digunakan alur kerja untuk tahap pembuatan dan pengujian.

String

arn:aws:imagebuilder: ::image//us-east-1111122223333sampleImage1.0.0/1

subnetId

ID subnet untuk meluncurkan instance build dan test.

String

subnet-1234567890abcdef1

mengakhiri InstanceOnFailure

Nilai setelan saat ini yang mengarahkan Image Builder untuk menghentikan instance pada kegagalan atau menyimpannya untuk pemecahan masalah.

Boolean

true | false

Fase Alur Kerja

Tahap saat ini yang sedang berjalan untuk eksekusi alur kerja.

String

Build | Test

workingDirectory

Jalur ke direktori kerja.

String

/tmp