

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

# Membuat dokumen komponen YAMAL untuk komponen kustom di Image Builder
<a name="create-component-yaml"></a>

Untuk membangun komponen, Anda harus menyediakan dokumen komponen aplikasi YAMAL atau JSON. Dokumen berisi kode yang berjalan selama fase dan langkah-langkah yang Anda tentukan untuk memberikan penyesuaian untuk gambar Anda.

Beberapa contoh di bagian ini membuat komponen build yang memanggil modul `UpdateOS` tindakan dalam aplikasi manajemen AWSTOE komponen. Modul memperbarui sistem operasi. Untuk informasi selengkapnya tentang modul `UpdateOS` tindakan, lihat[UpdateOS](toe-action-modules.md#action-modules-updateos).

Contoh sistem operasi macOS menggunakan modul `ExecuteBash` tindakan untuk menginstal dan memverifikasi utilitas. `wget` Modul `UpdateOS` tindakan tidak mendukung macOS. Untuk informasi selengkapnya tentang modul `ExecuteBash` tindakan, lihat[ExecuteBash](toe-action-modules.md#action-modules-executebash). 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).

**catatan**  
Image Builder menentukan jenis komponen dari fase yang didefinisikan dalam dokumen komponen sebagai berikut:  
**Build** — Ini adalah tipe komponen default. Apa pun yang tidak diklasifikasikan sebagai komponen uji, adalah komponen build. Jenis komponen ini berjalan selama *tahap Build* image. Jika komponen build ini memiliki `test` fase yang ditentukan, fase tersebut berjalan selama *tahap Test*.
**Test** — Untuk memenuhi syarat sebagai komponen pengujian, dokumen komponen harus menyertakan hanya satu fase, bernama`test`. Untuk pengujian yang terkait dengan konfigurasi komponen build, sebaiknya Anda tidak menggunakan komponen pengujian mandiri. Sebaliknya, gunakan `test` fase dalam komponen build terkait.
Untuk informasi selengkapnya tentang cara Image Builder menggunakan tahapan dan fase untuk mengelola alur kerja komponen dalam proses pembuatannya, lihat[Gunakan komponen untuk menyesuaikan image Image Builder](manage-components.md).

Untuk membuat dokumen komponen aplikasi YAMAL untuk contoh aplikasi, ikuti langkah-langkah pada tab yang cocok dengan sistem operasi gambar Anda. 

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

**Buat file komponen YAMAL**  
Gunakan alat pengeditan file untuk membuat dokumen komponen Anda. Contoh dokumentasi menggunakan file bernama`update-linux-os.yaml`, dengan konten berikut:

```
# Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
# SPDX-License-Identifier: MIT-0
#
# Permission is hereby granted, free of charge, to any person obtaining a copy of this
# software and associated documentation files (the "Software"), to deal in the Software
# without restriction, including without limitation the rights to use, copy, modify,
# merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
# INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
# PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
name: update-linux-os
description: Updates Linux with the latest security updates.
schemaVersion: 1
phases:
  - name: build
    steps:
    - name: UpdateOS
      action: UpdateOS
# Document End
```

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

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

**Buat file komponen YAMAL**  
Gunakan alat pengeditan file untuk membuat dokumen komponen Anda. Contoh dokumentasi menggunakan file bernama`update-windows-os.yaml`, dengan konten berikut:

```
# Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
# SPDX-License-Identifier: MIT-0
#
# Permission is hereby granted, free of charge, to any person obtaining a copy of this
# software and associated documentation files (the "Software"), to deal in the Software
# without restriction, including without limitation the rights to use, copy, modify,
# merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
# INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
# PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
name: update-windows-os
description: Updates Windows with the latest security updates.
schemaVersion: 1.0
phases:
  - name: build
    steps:
      - name: UpdateOS
        action: UpdateOS
# Document End
```

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

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

**Buat file komponen YAMAL**  
Gunakan alat pengeditan file untuk membuat dokumen komponen Anda. Contoh dokumentasi menggunakan file bernama`wget-macos.yaml`, dengan konten berikut:

```
name: WgetInstallDocument
description: This is wget installation document.
schemaVersion: 1.0

phases:
  - name: build
    steps:
      - name: WgetBuildStep
        action: ExecuteBash
        inputs:
          commands:
            - |
              PATH=/usr/local/bin:$PATH
              sudo -u ec2-user brew install wget


  - name: validate
    steps:
      - name: WgetValidateStep
        action: ExecuteBash
        inputs:
          commands:
            - |
              function error_exit {
                echo $1
                echo "{\"failureMessage\":\"$2\"}"
                exit 1
              }

              type wget
              if [ $? -ne 0 ]; then
                error_exit "$stderr" "Wget installation failed!"
              fi

  - name: test
    steps:
      - name: WgetTestStep
        action: ExecuteBash
        inputs:
          commands:
            - wget -h
```

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

------