

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

# Tutorial: Buat komponen kustom dengan parameter input
<a name="tutorial-component-parameters"></a>

Anda dapat mengelola komponen Image Builder, termasuk membuat dan menyetel parameter komponen, langsung dari konsol EC2 Image Builder, dari AWS CLI, atau dari Image Builder API atau SDKs. Di bagian ini, kita akan membahas pembuatan dan penggunaan parameter di komponen Anda, dan mengatur parameter komponen melalui konsol Image Builder dan AWS CLI perintah saat runtime.

**penting**  
Parameter komponen adalah nilai teks biasa, dan masuk AWS CloudTrail. Kami menyarankan Anda menggunakan AWS Secrets Manager atau AWS Systems Manager Parameter Store untuk menyimpan rahasia Anda. Untuk informasi selengkapnya tentang Secrets Manager, lihat [Apa itu Secrets Manager?](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) dalam *AWS Secrets Manager User Guide*. Untuk informasi selengkapnya tentang AWS Systems Manager Parameter Store, lihat [AWS Systems Manager Parameter Menyimpan](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) di *Panduan AWS Systems Manager Pengguna*.

## Gunakan parameter dalam dokumen komponen YAMAL Anda
<a name="component-params-yaml"></a>

Untuk membangun komponen, Anda harus menyediakan dokumen komponen aplikasi YAMG atau JSON. Dokumen berisi kode yang berjalan selama fase dan langkah-langkah yang Anda tentukan untuk memberikan penyesuaian untuk gambar Anda. Resep yang mereferensikan komponen dapat mengatur parameter untuk menyesuaikan nilai saat runtime, dengan nilai default yang berlaku jika parameter tidak disetel ke nilai tertentu.

**Buat dokumen komponen dengan parameter input**  
Bagian ini menunjukkan kepada Anda cara menentukan dan menggunakan parameter input dalam dokumen komponen YAMAL Anda.

Untuk membuat dokumen komponen aplikasi YAMG yang menggunakan parameter dan menjalankan perintah di build Image Builder atau instance pengujian, ikuti langkah-langkah yang sesuai dengan sistem operasi image Anda:

------
#### [ Linux ]

**Membuat dokumen komponen YAMG**  
Gunakan alat pengeditan file untuk membuat file dokumen komponen. Contoh dokumentasi menggunakan file bernama `hello-world-test.yaml` yang menyertakan konten berikut:

```
# Document Start
# 
name: "HelloWorldTestingDocument-Linux"
description: "Hello world document to demonstrate parameters."
schemaVersion: 1.0
parameters:
  - MyInputParameter:
      type: string
      default: "It's me!"
      description: This is an input parameter.
phases:
  - name: build
    steps:
      - name: HelloWorldStep
        action: ExecuteBash
        inputs:
          commands:
            - echo "Hello World! Build phase. My input parameter value is {{ MyInputParameter }}"

  - name: validate
    steps:
      - name: HelloWorldStep
        action: ExecuteBash
        inputs:
          commands:
            - echo "Hello World! Validate phase. My input parameter value is {{ MyInputParameter }}"

  - name: test
    steps:
      - name: HelloWorldStep
        action: ExecuteBash
        inputs:
          commands:
            - echo "Hello World! Test phase. My input parameter value is {{ MyInputParameter }}"
# Document End
```

**Tip**  
Gunakan alat seperti [Validator YAMG online](https://jsonformatter.org/yaml-validator) ini, atau ekstensi lint YAMG di lingkungan kode Anda untuk memverifikasi bahwa YAMAL Anda terbentuk dengan baik.

------
#### [ Windows ]

**Membuat dokumen komponen YAMG**  
Gunakan alat pengeditan file untuk membuat file dokumen komponen. Contoh dokumentasi menggunakan file bernama `hello-world-test.yaml` yang menyertakan konten berikut:

```
# Document Start
# 
name: "HelloWorldTestingDocument-Windows"
description: "Hello world document to demonstrate parameters."
schemaVersion: 1.0
parameters:
  - MyInputParameter:
      type: string
      default: "It's me!"
      description: This is an input parameter.
phases:
  - name: build
    steps:
      - name: HelloWorldStep
        action: ExecutePowerShell
        inputs:
          commands:
            - Write-Host "Hello World! Build phase. My input parameter value is {{ MyInputParameter }}"

  - name: validate
    steps:
      - name: HelloWorldStep
        action: ExecutePowerShell
        inputs:
          commands:
            - Write-Host "Hello World! Validate phase. My input parameter value is {{ MyInputParameter }}"

  - name: test
    steps:
      - name: HelloWorldStep
        action: ExecutePowerShell
        inputs:
          commands:
            - Write-Host "Hello World! Test phase. My input parameter value is {{ MyInputParameter }}"
# Document End
```

**Tip**  
Gunakan alat seperti [Validator YAMG online](https://jsonformatter.org/yaml-validator) ini, atau ekstensi lint YAMG di lingkungan kode Anda untuk memverifikasi bahwa YAMAL Anda terbentuk dengan baik.

------
#### [ macOS ]

**Membuat dokumen komponen YAMG**  
Gunakan alat pengeditan file untuk membuat file dokumen komponen. Contoh dokumentasi menggunakan file bernama `hello-world-test.yaml` yang menyertakan konten berikut:

```
# Document Start
# 
name: "HelloWorldTestingDocument-macOS"
description: "Hello world document to demonstrate parameters."
schemaVersion: 1.0
parameters:
  - MyInputParameter:
      type: string
      default: "It's me!"
      description: This is an input parameter.
phases:
  - name: build
    steps:
      - name: HelloWorldStep
        action: ExecuteBash
        inputs:
          commands:
            - echo "Hello World! Build phase. My input parameter value is {{ MyInputParameter }}"

  - name: validate
    steps:
      - name: HelloWorldStep
        action: ExecuteBash
        inputs:
          commands:
            - echo "Hello World! Validate phase. My input parameter value is {{ MyInputParameter }}"

  - name: test
    steps:
      - name: HelloWorldStep
        action: ExecuteBash
        inputs:
          commands:
            - echo "Hello World! Test phase. My input parameter value is {{ MyInputParameter }}"
# Document End
```

**Tip**  
Gunakan alat seperti [Validator YAMG online](https://jsonformatter.org/yaml-validator) ini, atau ekstensi lint YAMG di lingkungan kode Anda untuk memverifikasi bahwa YAMAL Anda terbentuk dengan baik.

------

Untuk informasi selengkapnya tentang fase, langkah, dan sintaks untuk dokumen komponen AWSTOE aplikasi, lihat [Menggunakan dokumen di AWSTOE](https://docs.aws.amazon.com/imagebuilder/latest/userguide/toe-use-documents.html). Untuk informasi selengkapnya tentang parameter dan persyaratannya, lihat [Parameter](toe-user-defined-variables.md#user-defined-vars-parameters) bagian **Tentukan dan referensi variabel di AWSTOE** halaman.

**Buat komponen dari dokumen komponen YAMG**  
Metode apa pun yang Anda gunakan untuk membuat AWSTOE komponen, dokumen komponen aplikasi YAMAL selalu diperlukan sebagai baseline.
+ Untuk membuat komponen langsung dari dokumen YAMAL Anda dengan konsol Image Builder, lihat[Buat komponen khusus dari konsol](create-component.md#create-component-ib-console).
+ Untuk membuat komponen dari baris perintah dengan **create-component** perintah Image Builder, lihat[Buat komponen khusus dari AWS CLI](create-component.md#create-component-ib-cli). Ganti nama dokumen YAMAL dalam contoh tersebut dengan nama dokumen YAMAL Hello World Anda ()`hello-world-test.yaml`.

## Mengatur parameter komponen dalam resep Image Builder dari konsol
<a name="recipe-set-component-params"></a>

Pengaturan parameter komponen bekerja sama untuk resep gambar dan resep wadah. Saat membuat resep baru, atau resep versi baru, Anda memilih komponen mana yang akan disertakan dari komponen **Build** dan daftar **komponen Uji**. Daftar komponen mencakup komponen yang berlaku untuk sistem operasi dasar yang Anda pilih untuk gambar Anda.

Setelah Anda memilih komponen, itu ditampilkan di bagian **Komponen yang dipilih**, langsung di bawah daftar komponen. Opsi konfigurasi ditampilkan untuk setiap komponen yang dipilih. Jika komponen Anda memiliki parameter input yang ditentukan, mereka ditampilkan sebagai bagian yang dapat diperluas yang disebut Parameter **input**.

Pengaturan parameter berikut ditampilkan untuk setiap parameter yang ditentukan untuk komponen Anda:
+ **Nama parameter** (*tidak dapat diedit*) — Nama parameter.
+ **Deskripsi** (*tidak dapat diedit*) — Deskripsi parameter
+ **Jenis** (*tidak dapat diedit*) - Tipe data untuk nilai parameter.
+ **Nilai** — Nilai untuk parameter. Jika Anda menggunakan komponen ini untuk pertama kalinya dalam resep ini, dan nilai default ditentukan untuk parameter input, nilai default muncul di kotak **Nilai** dengan teks berwarna abu-abu. Jika tidak ada nilai lain yang dimasukkan, Image Builder menggunakan nilai default.