

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

# Buat komponen kustom dengan Image Builder
<a name="create-component"></a>

Setelah menyelesaikan dokumen komponen, Anda dapat menggunakannya untuk membuat komponen kustom yang dapat digunakan resep Image Builder Anda. Anda dapat membuat komponen kustom dari konsol Image Builder, dari API atau SDKs, atau dari baris perintah. Untuk informasi selengkapnya tentang cara membuat komponen kustom dengan parameter input dan menggunakannya dalam resep Anda, lihat[Tutorial: Buat komponen kustom dengan parameter input](tutorial-component-parameters.md).

Bagian berikut menunjukkan cara membuat komponen dari konsol atau dari AWS CLI.

**Topics**
+ [Buat komponen khusus dari konsol](#create-component-ib-console)
+ [Buat komponen khusus dari AWS CLI](#create-component-ib-cli)
+ [Impor skrip untuk membuat komponen dari AWS CLI](#import-component-cli)
+ [Manajemen versi build otomatis](#auto-build-version-management)
+ [Menggunakan referensi versi](#using-version-references)

## Buat komponen khusus dari konsol
<a name="create-component-ib-console"></a>

Untuk membuat komponen AWSTOE aplikasi dari konsol Image Builder, ikuti langkah-langkah berikut:

1. Buka konsol [https://console.aws.amazon.com/imagebuilder/](https://console.aws.amazon.com/imagebuilder/)EC2 Image Builder di.

1. Pilih **Komponen** dari panel navigasi. Kemudian pilih **Buat komponen**.

1. Pada halaman **Create component**, di bawah **Component details**, masukkan yang berikut ini:

   1. **Gambar Sistem operasi (OS)**. Tentukan sistem operasi yang kompatibel dengan komponen tersebut.

   1. **Kategori komponen**. Dari dropdown, pilih jenis komponen build atau test yang Anda buat.

   1. **Nama komponen**. Masukkan nama untuk komponen.

   1. **Versi komponen**. Masukkan nomor versi komponen.

   1. **Deskripsi**. Berikan deskripsi opsional untuk membantu Anda mengidentifikasi komponen.

   1. **Ubah deskripsi**. Berikan deskripsi opsional untuk membantu Anda memahami perubahan yang dibuat pada versi komponen ini.

1. Di bagian **Dokumen definisi**, opsi defaultnya adalah **Tentukan konten dokumen**. Dokumen komponen mendefinisikan tindakan yang dilakukan Image Builder pada instance build dan pengujian untuk membuat image Anda.

   Di kotak **Konten**, masukkan konten dokumen komponen YAMB Anda. Untuk memulai dengan contoh *Hello World* untuk Linux, pilih opsi **Use example**. Untuk mempelajari lebih lanjut tentang cara membuat dokumen komponen YAMB, atau menyalin dan menempelkan contoh *UpdateOS* dari halaman tersebut, lihat. [Membuat dokumen komponen YAMAL untuk komponen kustom di Image Builder](create-component-yaml.md)

1. Setelah Anda memasukkan detail komponen, pilih **Buat komponen**.
**catatan**  
Untuk melihat komponen baru Anda saat membuat atau memperbarui resep, terapkan filter **Owned by me** ke daftar komponen build atau test. Filter terletak di bagian atas daftar komponen, di sebelah kotak pencarian.

1. Untuk menghapus komponen, dari halaman **Komponen**, pilih kotak centang di sebelah komponen yang ingin Anda hapus. Dari dropdown **Tindakan**, pilih **Hapus** komponen.

**Perbarui komponen**  
Untuk membuat versi komponen baru, ikuti langkah-langkah berikut:

1. Tergantung di mana Anda memulai:
   + Dari halaman daftar **Komponen** - Pilih kotak centang di sebelah nama komponen, lalu pilih **Buat versi baru** dari menu **Tindakan**.
   + Dari halaman detail komponen - Pilih tombol **Buat versi baru** di sudut kanan atas judul.

1. Informasi komponen sudah diisi dengan nilai saat ini saat halaman **Create Component** ditampilkan. Ikuti langkah-langkah membuat komponen untuk memperbarui komponen. Ini memastikan bahwa Anda memasukkan versi semantik unik dalam versi **Komponen**. Untuk mempelajari lebih lanjut tentang pembuatan versi semantik untuk sumber daya Image Builder, lihat. [Pembuatan versi semantik di Image Builder](ibhow-semantic-versioning.md)

## Buat komponen khusus dari AWS CLI
<a name="create-component-ib-cli"></a>

Di bagian ini, Anda akan belajar cara mengatur dan menggunakan perintah Image Builder di AWS CLI untuk membuat komponen AWSTOE aplikasi, sebagai berikut.
+ Unggah dokumen komponen YAMB Anda ke bucket S3 yang dapat Anda referensikan dari baris perintah.
+ Buat komponen AWSTOE aplikasi dengan **create-component** perintah.
+ Daftar versi komponen dengan **list-components** perintah dan filter nama untuk melihat versi apa yang sudah ada. Anda dapat menggunakan output untuk menentukan versi berikutnya untuk pembaruan.

Untuk membuat komponen AWSTOE aplikasi dari dokumen YAMM masukan, ikuti langkah-langkah yang sesuai dengan platform sistem operasi gambar Anda.

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

**Simpan dokumen komponen aplikasi Anda di Amazon S3**

Anda dapat menggunakan bucket S3 sebagai repositori untuk dokumen sumber komponen AWSTOE aplikasi Anda. Untuk menyimpan dokumen komponen Anda, ikuti langkah-langkah berikut:
+ 

**Unggah dokumen ke Amazon S3**

  *Jika dokumen Anda lebih kecil dari 64 KB, Anda dapat melewati langkah ini.* Dokumen yang berukuran 64 KB atau lebih besar harus disimpan di Amazon S3.

  ```
  aws s3 cp update-linux-os.yaml s3://amzn-s3-demo-destination-bucket/my-path/update-linux-os.yaml
  ```

**Buat komponen dari dokumen YAMB**

Untuk merampingkan **create-component** perintah yang Anda gunakan di AWS CLI, buat file JSON yang berisi semua parameter komponen yang ingin Anda lewatkan ke perintah. Sertakan lokasi `update-linux-os.yaml` dokumen yang Anda buat sebelumnya. Pasangan `uri` kunci-nilai berisi referensi file.
**catatan**  
Konvensi penamaan untuk nilai data dalam file JSON mengikuti pola yang ditentukan untuk parameter permintaan operasi Image Builder API. Untuk meninjau parameter permintaan perintah API, lihat [CreateComponent](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_CreateComponent.html)perintah di Referensi *API EC2 Image Builder*.  
Untuk memberikan nilai data sebagai parameter baris perintah, lihat nama parameter yang ditentukan dalam *Referensi AWS CLI Perintah*.

1. 

**Buat file JSON input CLI**

   Gunakan alat pengeditan file untuk membuat file bernama`create-update-linux-os-component.json`. Sertakan konten berikut:

   ```
   {
   	"name": "update-linux-os",
   	"semanticVersion": "1.1.2",
   	"description": "An example component that updates the Linux operating system",
   	"changeDescription": "Initial version.",
   	"platform": "Linux",
   	"uri": "s3://amzn-s3-demo-destination-bucket/my-path/update-linux-os.yaml",
   	"kmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/98765432-b123-456b-7f89-0123456f789c",
   	"tags": {
   		"MyTagKey-purpose": "security-updates"
   	}
   }
   ```

1. 

**Buat komponen**

   Gunakan perintah berikut untuk membuat komponen, merujuk nama file untuk file JSON yang Anda buat pada langkah sebelumnya:

   ```
   aws imagebuilder create-component --cli-input-json file://create-update-linux-os-component.json
   ```
**catatan**  
Anda harus menyertakan notasi `file://` pada awal jalur file JSON.
Jalur untuk file JSON harus mengikuti konvensi yang sesuai untuk sistem operasi dasar tempat Anda menjalankan perintah. Misalnya, Windows menggunakan garis miring terbalik (\$1) untuk merujuk ke jalur direktori, sedangkan Linux dan macOS menggunakan garis miring maju (/).

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

**Simpan dokumen komponen aplikasi Anda di Amazon S3**

Anda dapat menggunakan bucket S3 sebagai repositori untuk dokumen sumber komponen AWSTOE aplikasi Anda. Untuk menyimpan dokumen komponen Anda, ikuti langkah-langkah berikut:
+ 

**Unggah dokumen ke Amazon S3**

  *Jika dokumen Anda lebih kecil dari 64 KB, Anda dapat melewati langkah ini.* Dokumen yang berukuran 64 KB atau lebih besar harus disimpan di Amazon S3.

  ```
  aws s3 cp update-windows-os.yaml s3://amzn-s3-demo-destination-bucket/my-path/update-windows-os.yaml
  ```

**Buat komponen dari dokumen YAMB**

Untuk merampingkan **create-component** perintah yang Anda gunakan di AWS CLI, buat file JSON yang berisi semua parameter komponen yang ingin Anda lewatkan ke perintah. Sertakan lokasi `update-windows-os.yaml` dokumen yang Anda buat sebelumnya. Pasangan `uri` kunci-nilai berisi referensi file.
**catatan**  
Konvensi penamaan untuk nilai data dalam file JSON mengikuti pola yang ditentukan untuk parameter permintaan operasi Image Builder API. Untuk meninjau parameter permintaan perintah API, lihat [CreateComponent](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_CreateComponent.html)perintah di Referensi *API EC2 Image Builder*.  
Untuk memberikan nilai data sebagai parameter baris perintah, lihat nama parameter yang ditentukan dalam *Referensi AWS CLI Perintah*..

1. 

**Buat file JSON input CLI**

   Gunakan alat pengeditan file untuk membuat file bernama`create-update-windows-os-component.json`. Sertakan konten berikut:

   ```
   {
   	"name": "update-windows-os",
   	"semanticVersion": "1.1.2",
   	"description": "An example component that updates the Windows operating system.",
   	"changeDescription": "Initial version.",
   	"platform": "Windows",
   	"uri": "s3://amzn-s3-demo-destination-bucket/my-path/update-windows-os.yaml",
   	"kmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/98765432-b123-456b-7f89-0123456f789c",
   	"tags": {
   		"MyTagKey-purpose": "security-updates"
   	}
   }
   ```
**catatan**  
Anda harus menyertakan notasi `file://` pada awal jalur file JSON.
Jalur untuk file JSON harus mengikuti konvensi yang sesuai untuk sistem operasi dasar tempat Anda menjalankan perintah. Misalnya, Windows menggunakan garis miring terbalik (\$1) untuk merujuk ke jalur direktori, sedangkan Linux dan macOS menggunakan garis miring maju (/).

1. 

**Buat komponen**

   Gunakan perintah berikut untuk membuat komponen, merujuk nama file untuk file JSON yang Anda buat pada langkah sebelumnya:

   ```
   aws imagebuilder create-component --cli-input-json file://create-update-windows-os-component.json
   ```
**catatan**  
Anda harus menyertakan notasi `file://` pada awal jalur file JSON.
Jalur untuk file JSON harus mengikuti konvensi yang sesuai untuk sistem operasi dasar tempat Anda menjalankan perintah. Misalnya, Windows menggunakan garis miring terbalik (\$1) untuk merujuk ke jalur direktori, sedangkan Linux dan macOS menggunakan garis miring maju (/).

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

**Simpan dokumen komponen aplikasi Anda di Amazon S3**

Anda dapat menggunakan bucket S3 sebagai repositori untuk dokumen sumber komponen AWSTOE aplikasi Anda. Untuk menyimpan dokumen komponen Anda, ikuti langkah-langkah berikut:
+ 

**Unggah dokumen ke Amazon S3**

  *Jika dokumen Anda lebih kecil dari 64 KB, Anda dapat melewati langkah ini.* Dokumen yang berukuran 64 KB atau lebih besar harus disimpan di Amazon S3.

  ```
  aws s3 cp wget-macos.yaml s3://amzn-s3-demo-destination-bucket/my-path/wget-macos.yaml
  ```

**Buat komponen dari dokumen YAMB**

Untuk merampingkan **create-component** perintah yang Anda gunakan di AWS CLI, buat file JSON yang berisi semua parameter komponen yang ingin Anda lewatkan ke perintah. Sertakan lokasi `wget-macos.yaml` dokumen yang Anda buat sebelumnya. Pasangan `uri` kunci-nilai berisi referensi file.
**catatan**  
Konvensi penamaan untuk nilai data dalam file JSON mengikuti pola yang ditentukan untuk parameter permintaan operasi Image Builder API. Untuk meninjau parameter permintaan perintah API, lihat [CreateComponent](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_CreateComponent.html)perintah di Referensi *API EC2 Image Builder*.  
Untuk memberikan nilai data sebagai parameter baris perintah, lihat nama parameter yang ditentukan dalam *Referensi AWS CLI Perintah*.

1. 

**Buat file JSON input CLI**

   Gunakan alat pengeditan file untuk membuat file bernama`install-wget-macos-component.json`. Sertakan konten berikut:

   ```
   {
   	"name": "install install-wget-macos-component",
   	"semanticVersion": "1.1.2",
   	"description": "An example component that installs and verifies the wget utility on macOS.",
   	"changeDescription": "Initial version.",
   	"platform": "macOS",
   	"uri": "s3://amzn-s3-demo-destination-bucket/my-path/wget-macos.yaml",
   	"kmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/98765432-b123-456b-7f89-0123456f789c",
   	"tags": {
   		"MyTagKey-purpose": "install-software"
   	}
   }
   ```

1. 

**Buat komponen**

   Gunakan perintah berikut untuk membuat komponen, merujuk nama file untuk file JSON yang Anda buat pada langkah sebelumnya:

   ```
   aws imagebuilder create-component --cli-input-json file://install-wget-macos-component.json
   ```
**catatan**  
Anda harus menyertakan notasi `file://` pada awal jalur file JSON.
Jalur untuk file JSON harus mengikuti konvensi yang sesuai untuk sistem operasi dasar tempat Anda menjalankan perintah. Misalnya, Windows menggunakan garis miring terbalik (\$1) untuk merujuk ke jalur direktori, sedangkan Linux dan macOS menggunakan garis miring maju (/).

------

### AWSTOE versi komponen untuk pembaruan dari AWS CLI
<a name="component-update-cli"></a>

AWSTOE nama dan versi komponen disematkan di Amazon Resource Name (ARN) komponen, setelah awalan komponen. Setiap versi baru komponen memiliki ARN uniknya sendiri. Langkah-langkah untuk membuat versi baru persis sama dengan langkah-langkah untuk membuat komponen baru, selama versi semantik unik untuk nama komponen itu. Untuk mempelajari lebih lanjut tentang pembuatan versi semantik untuk sumber daya Image Builder, lihat. [Pembuatan versi semantik di Image Builder](ibhow-semantic-versioning.md)

Untuk memastikan bahwa Anda menetapkan versi logis berikutnya, pertama-tama dapatkan daftar versi yang ada untuk komponen yang ingin Anda ubah. Gunakan **list-components** perintah dengan AWS CLI, dan filter pada nama.

Dalam contoh ini, Anda memfilter nama komponen yang Anda buat di contoh Linux sebelumnya. Untuk membuat daftar komponen yang Anda buat, gunakan nilai `name` parameter dari file JSON yang Anda gunakan dalam **create-component** perintah.

```
aws imagebuilder list-components --filters name="name",values="update-linux-os"	
{
    "requestId": "123a4567-b890-123c-45d6-ef789ab0cd1e",
    "componentVersionList": [
        {
            "arn": "arn:aws:imagebuilder:us-west-2:1234560087789012:component/update-linux-os/1.0.0",
            "name": "update-linux-os",
            "version": "1.0.0",
            "platform": "Linux",
            "type": "BUILD",
            "owner": "123456789012",
            "dateCreated": "2020-09-24T16:58:24.444Z"
        },
        {
            "arn": "arn:aws:imagebuilder:us-west-2:1234560087789012:component/update-linux-os/1.0.1",
            "name": "update-linux-os",
            "version": "1.0.1",
            "platform": "Linux",
            "type": "BUILD",
            "owner": "123456789012",
            "dateCreated": "2021-07-10T03:38:46.091Z"
        }
    ]
}
```

Berdasarkan hasil Anda, Anda dapat menentukan versi berikutnya.

## Impor skrip untuk membuat komponen dari AWS CLI
<a name="import-component-cli"></a>

Untuk beberapa skenario, mungkin lebih mudah untuk memulai dengan skrip yang sudah ada sebelumnya. Untuk skenario ini, Anda dapat menggunakan contoh berikut. 

Contoh ini mengasumsikan bahwa Anda memiliki file bernama `import-component.json` (seperti yang ditunjukkan). Perhatikan bahwa file tersebut secara langsung mereferensikan PowerShell skrip `AdminConfig.ps1` yang disebut yang sudah diunggah. `amzn-s3-demo-source-bucket` Saat `SHELL` ini, didukung untuk komponen`format`. 

```
{
"name": "MyImportedComponent",
"semanticVersion": "1.0.0",
"description": "An example of how to import a component",
"changeDescription": "First commit message.",
"format": "SHELL",
"platform": "Windows",
"type": "BUILD",
"uri": "s3://amzn-s3-demo-source-bucket/AdminConfig.ps1",
"kmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/60763706-b131-418b-8f85-3420912f020c"
}
```

Untuk membuat komponen dari skrip yang diimpor, jalankan perintah berikut.

```
aws imagebuilder import-component --cli-input-json file://import-component.json
```

## Manajemen versi build otomatis
<a name="auto-build-version-management"></a>

Saat Anda membuat komponen dengan nama dan versi semantik yang sama dengan komponen yang ada, Image Builder secara otomatis menambah versi build (misalnya, dari `/1` ke, ke `/2``/3`, dan seterusnya). Ini memungkinkan Anda untuk membuat pembaruan berulang pada komponen Anda tanpa mengelola nomor versi secara manual, yang sangat berguna dalam CI/CD pipeline dan infrastructure-as-code penerapan. Jika konten komponen identik dengan versi build sebelumnya, Image Builder kembali `ResourceAlreadyExistsException` untuk mencegah duplikat komponen menggunakan kuota layanan Anda. 

## Menggunakan referensi versi
<a name="using-version-references"></a>

Ketika Anda membuat atau mengambil komponen, Image Builder secara otomatis menyediakan pra-konstruksi ARNs dengan pola versi wildcard dalam objek. latestVersionReferences Referensi ini memudahkan penggunaan versi terbaru komponen Anda dalam resep dan saluran pipa tanpa mengurai ARNs secara manual. 

**Memilih referensi versi yang tepat**
+ latestVersionArn (x.xx) - Selalu gunakan versi komponen terbaru yang absolut.
+ atestMajorVersionArn (1.xx) - Gunakan versi minor dan patch terbaru dalam versi utama.
+ latestMinorVersionArn (1.2.x) - Gunakan versi patch terbaru saja.
+ latestPatchVersionArn (1.2.3) - Referensi versi semantik tertentu, tetapi dapatkan versi build terbaru.