

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

# Sesuaikan komponen machine learning Anda
<a name="ml-customization"></a>

Di AWS IoT Greengrass, Anda dapat mengonfigurasi [komponen pembelajaran mesin](perform-machine-learning-inference.md#ml-components) sampel untuk menyesuaikan cara Anda melakukan inferensi pembelajaran mesin di perangkat Anda dengan komponen inferensi, model, dan runtime sebagai blok bangunan. AWS IoT Greengrass juga memberi Anda fleksibilitas untuk menggunakan komponen sampel sebagai templat dan membuat komponen kustom Anda sendiri sesuai kebutuhan. Anda dapat mencampur dan mencocokkan pendekatan modular ini untuk menyesuaikan komponen inferensi machine learning Anda dengan cara berikut:

**Menggunakan komponen inferensi sampel**  
+ Ubah konfigurasi komponen inferensi ketika Anda men-deploy-nya.
+ Gunakan model kustom dengan komponen inferensi sampel dengan mengganti komponen penyimpanan model sampel dengan komponen model kustom. Model kustom Anda harus dilatih menggunakan waktu aktif yang sama seperti model sampel.

**Menggunakan komponen inferensi kustom**  
+ Gunakan kode inferensi kustom dengan model sampel dan waktu aktif dengan menambahkan komponen model publik dan komponen waktu aktif sebagai dependensi komponen inferensi kustom.
+ Buat dan tambahkan komponen model kustom atau komponen waktu aktif sebagai dependensi komponen inferensi kustom. Anda harus menggunakan komponen kustom jika Anda ingin menggunakan kode inferensi kustom atau runtime yang AWS IoT Greengrass tidak menyediakan komponen sampel. 

**Topics**
+ [Ubah konfigurasi komponen inferensi publik](#modify-ml-component-config)
+ [Gunakan model kustom dengan komponen inferensi sampel](#override-public-model-store)
+ [Buat komponen machine learning khusus](#create-private-ml-components)
+ [Buat komponen inferensi khusus](#create-inference-component)

## Ubah konfigurasi komponen inferensi publik
<a name="modify-ml-component-config"></a>

Di [konsol AWS IoT Greengrass](https://console.aws.amazon.com/greengrass) tersebut, halaman komponen menampilkan konfigurasi default komponen tersebut. Misalnya, konfigurasi default komponen klasifikasi gambar TensorFlow Lite terlihat seperti berikut:

```
{
  "accessControl": {
    "aws.greengrass.ipc.mqttproxy": {
      "aws.greengrass.TensorFlowLiteImageClassification:mqttproxy:1": {
        "policyDescription": "Allows access to publish via topic ml/tflite/image-classification.",
        "operations": [
          "aws.greengrass#PublishToIoTCore"
        ],
        "resources": [
          "ml/tflite/image-classification"
        ]
      }
    }
  },
  "PublishResultsOnTopic": "ml/tflite/image-classification",
  "ImageName": "cat.jpeg",
  "InferenceInterval": 3600,
  "ModelResourceKey": {
    "model": "TensorFlowLite-Mobilenet"
  }
}
```

Ketika Anda men-deploy komponen inferensi publik, Anda dapat mengubah konfigurasi default untuk menyesuaikan deployment Anda. Untuk informasi tentang parameter konfigurasi yang tersedia untuk setiap komponen inferensi publik, lihat topik komponen di [AWS-menyediakan komponen pembelajaran mesin](perform-machine-learning-inference.md#ml-components).

Bagian ini menjelaskan cara menerapkan komponen yang dimodifikasi dari AWS IoT Greengrass konsol. Untuk informasi tentang penerapan komponen menggunakan AWS CLI, lihat[Buat deployment](create-deployments.md).<a name="modify-ml-component-config-console"></a>

**Untuk men-deploy komponen inferensi publik yang dimodifikasi (konsol)**

1. Masuk ke [konsol AWS IoT Greengrass](https://console.aws.amazon.com/greengrass) tersebut.

1. Pada menu navigasi, pilih **Komponen**.

1. Pada halaman **Komponen**, pada tab **Komponen publik**, pilih komponen yang ingin Anda deploy.

1. Pada halaman komponen, pilih **Deploy**.

1. <a name="add-deployment"></a>Dari **Tambahkan ke deployment**, pilih salah satu langkah berikut ini:

   1. Untuk menggabungkan komponen ini ke deployment yang ada pada perangkat target Anda, pilih **Tambahkan ke deployment yang ada**, lalu pilih deployment yang ingin Anda revisi.

   1. Untuk membuat deployment baru di perangkat target Anda, pilih **Buat deployment baru**. Jika Anda memiliki deployment yang ada di perangkat, dengan memilih langkah ini Anda akan menggantikan deployment yang ada. 

1. <a name="specify-deployment-target"></a>Di halaman **Tentukan target**, lakukan hal berikut: 

   1. Di bawah informasi **Deployment**, masukkan atau ubah nama yang ramah untuk deployment Anda.

   1. Di bawah **Target deployment**, pilih target untuk deployment Anda, dan pilih **Selanjutnya**. Anda tidak dapat mengubah target deployment jika Anda merevisi deployment yang ada.

1. Pada halaman **Pilih komponen**, di bawah **Komponen publik** verifikasi bahwa komponen inferensi dengan konfigurasi yang dimodifikasi dipilih, dan pilih **Selanjutnya**.

1. Pada halaman **Konfigurasikan komponen**, lakukan hal berikut: 

   1. Pilih komponen inferensi, dan pilih **Konfigurasikan komponen**.

   1. Di bawah **Pembaruan konfigurasi**, masukkan nilai konfigurasi yang ingin Anda perbarui. Sebagai contoh, masukkan pembaruan konfigurasi berikut di kotak **Konfigurasikan untuk menggabungkan** untuk mengubah interval inferensi menjadi 15 detik, dan instruksikan komponen untuk mencari citra bernama `custom.jpg` di folder `/custom-ml-inference/images/`. 

      ```
      {
        "InferenceInterval": "15",
        "ImageName": "custom.jpg",
        "ImageDirectory": "/custom-ml-inference/images/"
      }
      ```

      Untuk me-reset seluruh konfigurasi komponen ke nilai default-nya, tentukan string kosong tunggal `""` di kotak **Reset path**. 

   1. Pilih **Konfirmasi** dan kemudian pilih **Selanjutnya**.

1. Pada halaman **Konfigurasikan pengaturan lanjutan**, simpan pengaturan konfigurasi default tersebut, dan pilih **Selanjutnya**.

1. Di halaman **Tinjauan**, pilih **Deploy**.

## Gunakan model kustom dengan komponen inferensi sampel
<a name="override-public-model-store"></a>

Jika Anda ingin menggunakan komponen inferensi sampel dengan model pembelajaran mesin Anda sendiri untuk runtime yang AWS IoT Greengrass menyediakan komponen runtime sampel, Anda harus mengganti komponen model publik dengan komponen yang menggunakan model tersebut sebagai artefak. Pada tingkat tinggi Anda menyelesaikan langkah-langkah berikut untuk menggunakan model kustom dengan komponen inferensi sampel:

1. Buat komponen model yang menggunakan model kustom dalam bucket S3 sebagai artefak. Model kustom Anda harus dilatih dengan menggunakan waktu aktif yang sama seperti model sampel.

1. Ubah parameter konfigurasi `ModelResourceKey` dalam komponen inferensi untuk menggunakan model kustom tersebut. Untuk informasi tentang pembaruan konfigurasi komponen inferensi, lihat [Ubah konfigurasi komponen inferensi publik](#modify-ml-component-config)

Saat Anda menerapkan komponen inferensi, AWS IoT Greengrass cari versi terbaru dari dependensi komponennya. Ini mengesampingkan komponen model publik dependen jika versi kustom komponen yang lebih baru ada dalam versi yang sama Akun AWS dan. Wilayah AWS

### Buat komponen model kustom (konsol)
<a name="create-model-store-component-console"></a>

1. Unggah model Anda ke bucket S3. Untuk informasi tentang mengunggah model ke bucket S3, lihat [Bekerja dengan Bucket Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingBucket.html) di Panduan Pengguna Layanan Penyimpanan *Sederhana Amazon*.
**catatan**  <a name="s3-artifacts-note"></a>
<a name="sr-artifacts-req"></a>Anda harus menyimpan artefak Anda dalam ember S3 yang sama Akun AWS dan Wilayah AWS sebagai komponen. AWS IoT Greengrass Untuk mengaktifkan akses artefak ini, peran perangkat [Greengrass](device-service-role.md) harus memungkinkan tindakan. `s3:GetObject` Untuk informasi lebih lanjut tentang peran perangkat, lihat [Otorisasi perangkat inti untuk berinteraksi dengan layanan AWS](device-service-role.md).

1. Pada menu navigasi [konsol AWS IoT Greengrass](https://console.aws.amazon.com/greengrass) tersebut, pilih **Komponen**.

1. Ambil resep komponen untuk komponen penyimpanan model publik.

   1. Pada halaman **Komponen**, pada tab **Komponen publik**, cari dan pilih komponen model publik yang ingin Anda buat versi barunya. Misalnya, `variant.DLR.ImageClassification.ModelStore`.

   1. Pada halaman komponen, pilih **Lihat resep** dan salin resep JSON yang ditampilkan.

1. Pada halaman **Komponen**, pada tab **Komponen saya**, pilih **Buat komponen**.

1. Pada halaman **Buat Komponen**, di bawah **Informasi komponen**, pilih **Masukkan resep sebagai JSON** sebagai sumber komponen Anda.

1. Di kotak **Resep**, tempelkan komponen resep yang sebelumnya telah Anda salin.

1. <a name="override-model-recipe-config"></a>Dalam resep tersebut, perbarui nilai berikut:
   + `ComponentVersion`: Kenaikan versi minor komponen. 

     Ketika Anda membuat komponen kustom untuk menimpa komponen model publik, Anda harus memperbarui hanya versi minor dari versi komponen yang ada. Sebagai contoh, jika versi komponen publik `2.1.0` Anda dapat membuat komponen kustom dengan versi `2.1.1`.
   + `Manifests.Artifacts.Uri`: Perbarui setiap nilai URI untuk Amazon S3 URI model yang ingin Anda gunakan.
**catatan**  
Jangan ubah nama komponen.

1. Pilih **Buat komponen**.

### Buat komponen model kustom (AWS CLI)
<a name="create-model-store-component-cli"></a>

1. Unggah model Anda ke bucket S3. Untuk informasi tentang mengunggah model ke bucket S3, lihat [Bekerja dengan Bucket Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingBucket.html) di Panduan Pengguna Layanan Penyimpanan *Sederhana Amazon*.
**catatan**  <a name="s3-artifacts-note"></a>
<a name="sr-artifacts-req"></a>Anda harus menyimpan artefak Anda dalam ember S3 yang sama Akun AWS dan Wilayah AWS sebagai komponen. AWS IoT Greengrass Untuk mengaktifkan akses artefak ini, peran perangkat [Greengrass](device-service-role.md) harus memungkinkan tindakan. `s3:GetObject` Untuk informasi lebih lanjut tentang peran perangkat, lihat [Otorisasi perangkat inti untuk berinteraksi dengan layanan AWS](device-service-role.md).

1. Jalankan perintah berikut untuk mengambil resep komponen pada komponen publik. Perintah ini menuliskan resep komponen untuk file output yang Anda berikan dalam perintah Anda. Konversi string berkode base64 yang diambil untuk JSON atau YAML, sesuai keperluan.

------
#### [ Linux, macOS, or Unix ]

   ```
   aws greengrassv2 get-component \
       --arn <arn> \
       --recipe-output-format <recipe-format> \
       --query recipe \
       --output text | base64 --decode > <recipe-file>
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   aws greengrassv2 get-component ^
       --arn <arn> ^
       --recipe-output-format <recipe-format> ^
       --query recipe ^
       --output text > <recipe-file>.base64
   
   certutil -decode <recipe-file>.base64 <recipe-file>
   ```

------
#### [ PowerShell ]

   ```
   aws greengrassv2 get-component `
       --arn <arn> `
       --recipe-output-format <recipe-format> `
       --query recipe `
       --output text > <recipe-file>.base64
   
   certutil -decode <recipe-file>.base64 <recipe-file>
   ```

------

1. Perbarui nama file resep untuk `<component-name>-<component-version>`, di mana versi komponen adalah versi target komponen baru. Misalnya, `variant.DLR.ImageClassification.ModelStore-2.1.1.yaml`. 

1. <a name="override-model-recipe-config"></a>Dalam resep tersebut, perbarui nilai berikut:
   + `ComponentVersion`: Kenaikan versi minor komponen. 

     Ketika Anda membuat komponen kustom untuk menimpa komponen model publik, Anda harus memperbarui hanya versi minor dari versi komponen yang ada. Sebagai contoh, jika versi komponen publik `2.1.0` Anda dapat membuat komponen kustom dengan versi `2.1.1`.
   + `Manifests.Artifacts.Uri`: Perbarui setiap nilai URI untuk Amazon S3 URI model yang ingin Anda gunakan.
**catatan**  
Jangan ubah nama komponen.

1. Jalankan perintah berikut untuk membuat komponen baru dengan menggunakan resep yang telah Anda ambil dan ubah.

   ```
   aws greengrassv2 create-component-version \
       --inline-recipe fileb://path/to/component/recipe
   ```
**catatan**  
Langkah ini menciptakan komponen dalam AWS IoT Greengrass layanan di AWS Cloud. Anda dapat menggunakan Greengrass CLI untuk mengembangkan, menguji, dan men-deploy komponen Anda secara lokal sebelum Anda meng-upload ke cloud. Untuk informasi selengkapnya, lihat [Kembangkan AWS IoT Greengrass komponen](develop-greengrass-components.md).

Untuk informasi selengkapnya tentang membuat komponen, lihat [Kembangkan AWS IoT Greengrass komponen](develop-greengrass-components.md).

## Buat komponen machine learning khusus
<a name="create-private-ml-components"></a>

Anda harus membuat komponen kustom jika Anda ingin menggunakan kode inferensi kustom atau runtime yang AWS IoT Greengrass tidak menyediakan komponen sampel. Anda dapat menggunakan kode inferensi kustom Anda dengan model pembelajaran mesin sampel dan runtime yang AWS disediakan, atau Anda dapat mengembangkan solusi inferensi pembelajaran mesin yang sepenuhnya disesuaikan dengan model dan runtime Anda sendiri. Jika model Anda menggunakan runtime yang AWS IoT Greengrass menyediakan komponen runtime sampel, maka Anda dapat menggunakan komponen runtime tersebut, dan Anda perlu membuat komponen khusus hanya untuk kode inferensi dan model yang ingin Anda gunakan. 

**Topics**
+ [Ambil resep untuk komponen publik](#get-ml-component-recipes)
+ [Ambil contoh artefak komponen](#get-ml-component-artifacts)
+ [Unggah artefak komponen ke bucket S3](#upload-ml-component-artifacts)
+ [Buat komponen khusus](#create-ml-components)

### Ambil resep untuk komponen publik
<a name="get-ml-component-recipes"></a>

Anda dapat menggunakan resep komponen machine learning publik yang ada sebagai templat untuk membuat komponen kustom. Untuk melihat resep komponen untuk versi terbaru dari komponen publik, gunakan konsol atau AWS CLI sebagai berikut:
+ **Menggunakan konsol**

  1. Pada halaman **Komponen**, pada tab **Komponen publik**, cari dan pilih komponen model publik yang ingin Anda buat versi barunya.

  1. Pada halaman komponen, pilih **Lihat resep**.
+ **Menggunakan AWS CLI**

  Jalankan perintah berikut untuk mengambil resep komponen pada komponen varian publik. Perintah ini menuliskan resep komponen untuk file resep JSON atau YAML yang Anda berikan dalam perintah Anda. 

------
#### [ Linux, macOS, or Unix ]

  ```
  aws greengrassv2 get-component \
      --arn <arn> \
      --recipe-output-format <recipe-format> \
      --query recipe \
      --output text | base64 --decode > <recipe-file>
  ```

------
#### [ Windows Command Prompt (CMD) ]

  ```
  aws greengrassv2 get-component ^
      --arn <arn> ^
      --recipe-output-format <recipe-format> ^
      --query recipe ^
      --output text > <recipe-file>.base64
  
  certutil -decode <recipe-file>.base64 <recipe-file>
  ```

------
#### [ PowerShell ]

  ```
  aws greengrassv2 get-component `
      --arn <arn> `
      --recipe-output-format <recipe-format> `
      --query recipe `
      --output text > <recipe-file>.base64
  
  certutil -decode <recipe-file>.base64 <recipe-file>
  ```

------

  Ganti nilai-nilai dalam perintah Anda sebagai berikut:
  + `<arn>`. Amazon Resource Name (ARN) dari komponen publik. 
  + `<recipe-format>`. Format di mana Anda ingin membuat file resep. Nilai yang didukung adalah `JSON` dan `YAML`.
  + `<recipe-file>`. Nama resep dalam format `<component-name>-<component-version>`. 

### Ambil contoh artefak komponen
<a name="get-ml-component-artifacts"></a>

Anda dapat menggunakan artefak yang digunakan oleh komponen machine learning publik sebagai templat untuk membuat artefak komponen kustom Anda, seperti kode inferensi atau skrip instalasi waktu aktif. 

Untuk melihat artefak sampel yang disertakan dalam komponen machine learning publik, deploy komponen inferensi publik dan kemudian lihat artefak pada perangkat Anda di folder `/greengrass/v2/packages/artifacts-unarchived/component-name/component-version/`. 

### Unggah artefak komponen ke bucket S3
<a name="upload-ml-component-artifacts"></a>

Sebelum Anda dapat membuat komponen kustom, Anda harus mengunggah artefak komponen ke bucket S3 dan menggunakan S3 URIs dalam resep komponen Anda. Misalnya, untuk menggunakan kode inferensi kustom dalam komponen inferensi Anda, unggah kode tersebut ke bucket S3. Anda kemudian dapat menggunakan Amazon S3 URI kode inferensi Anda sebagai artefak dalam komponen Anda. 

Untuk informasi tentang mengunggah konten ke bucket S3, lihat [Bekerja dengan Bucket Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingBucket.html) di Panduan Pengguna Layanan Penyimpanan *Sederhana Amazon*.

**catatan**  <a name="s3-artifacts-note"></a>
<a name="sr-artifacts-req"></a>Anda harus menyimpan artefak Anda dalam ember S3 yang sama Akun AWS dan Wilayah AWS sebagai komponen. AWS IoT Greengrass Untuk mengaktifkan akses artefak ini, peran perangkat [Greengrass](device-service-role.md) harus memungkinkan tindakan. `s3:GetObject` Untuk informasi lebih lanjut tentang peran perangkat, lihat [Otorisasi perangkat inti untuk berinteraksi dengan layanan AWS](device-service-role.md).

### Buat komponen khusus
<a name="create-ml-components"></a>

Anda dapat menggunakan artefak dan resep yang telah Anda ambil untuk membuat komponen machine learning kustom Anda. Sebagai contoh, lihat [Buat komponen inferensi khusus](#create-inference-component).

Untuk informasi detail tentang membuat dan men-deploy komponen ke perangkat Greengrass, lihat [Kembangkan AWS IoT Greengrass komponen](develop-greengrass-components.md) dan [Menyebarkan AWS IoT Greengrass komponen ke perangkat](manage-deployments.md).

## Buat komponen inferensi khusus
<a name="create-inference-component"></a>

Bagian ini menunjukkan kepada Anda cara membuat komponen inferensi kustom dengan menggunakan komponen klasifikasi gambar DLR sebagai templat.

**Topics**
+ [Unggah kode inferensi Anda ke bucket Amazon S3](#create-inference-code)
+ [Buat resep untuk komponen inferensi Anda](#create-inference-component-recipe)
+ [Buat komponen inferensi](#create-private-inference-component)

### Unggah kode inferensi Anda ke bucket Amazon S3
<a name="create-inference-code"></a>

Buat kode inferensi Anda dan kemudian unggah ke bucket S3. Untuk informasi tentang mengunggah konten ke bucket S3, lihat [Bekerja dengan Bucket Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingBucket.html) di Panduan Pengguna Layanan Penyimpanan *Sederhana Amazon*.

**catatan**  <a name="s3-artifacts-note"></a>
<a name="sr-artifacts-req"></a>Anda harus menyimpan artefak Anda dalam ember S3 yang sama Akun AWS dan Wilayah AWS sebagai komponen. AWS IoT Greengrass Untuk mengaktifkan akses artefak ini, peran perangkat [Greengrass](device-service-role.md) harus memungkinkan tindakan. `s3:GetObject` Untuk informasi lebih lanjut tentang peran perangkat, lihat [Otorisasi perangkat inti untuk berinteraksi dengan layanan AWS](device-service-role.md).

### Buat resep untuk komponen inferensi Anda
<a name="create-inference-component-recipe"></a>

1. Jalankan perintah berikut untuk mengambil resep komponen pada komponen klasifikasi citra DLR. Perintah ini menuliskan resep komponen untuk file resep JSON atau YAML yang Anda berikan dalam perintah Anda. 

------
#### [ Linux, macOS, or Unix ]

   ```
   aws greengrassv2 get-component \
       --arn arn:aws:greengrass:region:aws:components:aws.greengrass.DLRImageClassification:versions:version \
       --recipe-output-format JSON | YAML \
       --query recipe \
       --output text | base64 --decode > <recipe-file>
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   aws greengrassv2 get-component ^
       --arn arn:aws:greengrass:region:aws:components:aws.greengrass.DLRImageClassification:versions:version ^
       --recipe-output-format JSON | YAML ^
       --query recipe ^
       --output text > <recipe-file>.base64
   
   certutil -decode <recipe-file>.base64 <recipe-file>
   ```

------
#### [ PowerShell ]

   ```
   aws greengrassv2 get-component `
       --arn arn:aws:greengrass:region:aws:components:aws.greengrass.DLRImageClassification:versions:version `
       --recipe-output-format JSON | YAML `
       --query recipe `
       --output text > <recipe-file>.base64
   
   certutil -decode <recipe-file>.base64 <recipe-file>
   ```

------

   Ganti *<recipe-file>* dengan nama resep dalam format`<component-name>-<component-version>`. 

1. Di objek `ComponentDependencies` dalam resep Anda, lakukan salah satu atau lebih hal berikut ini tergantung pada model dan waktu aktif komponen yang ingin Anda gunakan:
   + Jaga dependensi komponen DLR jika Anda ingin menggunakan model terkompilasi DLR. Anda juga dapat menggantinya dengan dependensi pada komponen waktu aktif kustom, seperti yang ditunjukkan dalam contoh berikut.

     **Komponen runtime**

------
#### [ JSON ]

     ```
     { 
         "<runtime-component>": {
             "VersionRequirement": "<version>",
             "DependencyType": "HARD"
         }
     }
     ```

------
#### [ YAML ]

     ```
     <runtime-component>:
         VersionRequirement: "<version>"
         DependencyType: HARD
     ```

------
   + Pertahankan dependensi penyimpanan model klasifikasi gambar DLR untuk menggunakan model ResNet -50 yang telah dilatih sebelumnya yang AWS menyediakan, atau memodifikasinya untuk menggunakan komponen model kustom. Saat Anda menyertakan dependensi untuk komponen model publik, jika versi kustom komponen yang lebih baru ada dalam komponen yang sama Akun AWS dan Wilayah AWS, maka komponen inferensi menggunakan komponen kustom tersebut. Tentukan dependensi komponen model seperti yang ditunjukkan dalam contoh berikut.

     **Komponen model publik**

------
#### [ JSON ]

     ```
     {
         "variant.DLR.ImageClassification.ModelStore": {
             "VersionRequirement": "<version>",
             "DependencyType": "HARD"
         }
     }
     ```

------
#### [ YAML ]

     ```
     variant.DLR.ImageClassification.ModelStore:
         VersionRequirement: "<version>"
         DependencyType: HARD
     ```

------

     **Komponen model kustom**

------
#### [ JSON ]

     ```
     {
         "<custom-model-component>": {
             "VersionRequirement": "<version>",
             "DependencyType": "HARD"
         }
     }
     ```

------
#### [ YAML ]

     ```
     <custom-model-component>:
         VersionRequirement: "<version>"
         DependencyType: HARD
     ```

------

1. Di objek `ComponentConfiguration`, tambahkan konfigurasi default untuk komponen ini. Anda nanti dapat mengubah konfigurasi ini ketika Anda men-deploy komponen tersebut. Kutipan berikut menunjukkan konfigurasi komponen untuk komponen klasifikasi gambar DLR. 

   Misalnya, jika Anda menggunakan komponen model kustom sebagai dependensi untuk komponen inferensi kustom Anda, maka ubah `ModelResourceKey` untuk memberikan nama-nama model yang Anda gunakan.

------
#### [ JSON ]

   ```
   {
     "accessControl": {
       "aws.greengrass.ipc.mqttproxy": {
         "aws.greengrass.ImageClassification:mqttproxy:1": {
           "policyDescription": "Allows access to publish via topic ml/dlr/image-classification.",
           "operations": [
             "aws.greengrass#PublishToIoTCore"
           ],
           "resources": [
             "ml/dlr/image-classification"
           ]
         }
       }
     },
     "PublishResultsOnTopic": "ml/dlr/image-classification",
     "ImageName": "cat.jpeg",
     "InferenceInterval": 3600,
     "ModelResourceKey": {
       "armv7l": "DLR-resnet50-armv7l-cpu-ImageClassification",
       "x86_64": "DLR-resnet50-x86_64-cpu-ImageClassification",
       "aarch64": "DLR-resnet50-aarch64-cpu-ImageClassification"
     }
   }
   ```

------
#### [ YAML ]

   ```
   accessControl:
       aws.greengrass.ipc.mqttproxy:
           'aws.greengrass.ImageClassification:mqttproxy:1':
               policyDescription: 'Allows access to publish via topic ml/dlr/image-classification.'
               operations:
                   - 'aws.greengrass#PublishToIoTCore'
               resources:
                   - ml/dlr/image-classification
   PublishResultsOnTopic: ml/dlr/image-classification
   ImageName: cat.jpeg
   InferenceInterval: 3600
   ModelResourceKey:
       armv7l: "DLR-resnet50-armv7l-cpu-ImageClassification"
       x86_64: "DLR-resnet50-x86_64-cpu-ImageClassification"
       aarch64: "DLR-resnet50-aarch64-cpu-ImageClassification"
   ```

------

1. Di objek `Manifests`, berikan informasi tentang artefak tersebut dan konfigurasi komponen ini yang digunakan ketika komponen tersebut di-deploy pada beberapa platform yang berbeda dan informasi lain yang diperlukan untuk berhasil menjalankan komponen tersebut. Kutipan berikut menunjukkan konfigurasi objek `Manifests` untuk platform Linux dalam komponen klasifikasi gambar DLR.

------
#### [ JSON ]

   ```
   {
     "Manifests": [
       {
         "Platform": {
           "os": "linux",
           "architecture": "arm"
         },
         "Name": "32-bit armv7l - Linux (raspberry pi)",
         "Artifacts": [
           {
             "URI": "s3://SAMPLE-BUCKET/sample-artifacts-directory/image_classification.zip",
             "Unarchive": "ZIP"
           }
         ],
         "Lifecycle": {
           "Setenv": {
             "DLR_IC_MODEL_DIR": "{variant.DLR.ImageClassification.ModelStore:artifacts:decompressedPath}/{configuration:/ModelResourceKey/armv7l}",
             "DEFAULT_DLR_IC_IMAGE_DIR": "{artifacts:decompressedPath}/image_classification/sample_images/"
           },
           "Run": {
             "RequiresPrivilege": true,
             "script": ". {variant.DLR:configuration:/MLRootPath}/greengrass_ml_dlr_venv/bin/activate\npython3 {artifacts:decompressedPath}/image_classification/inference.py"
           }
         }
       }
     ]
   }
   ```

------
#### [ YAML ]

   ```
   Manifests:
     - Platform:
         os: linux
         architecture: arm
       Name: 32-bit armv7l - Linux (raspberry pi)
       Artifacts:
         - URI: s3://SAMPLE-BUCKET/sample-artifacts-directory/image_classification.zip
           Unarchive: ZIP
       Lifecycle:
         SetEnv:
           DLR_IC_MODEL_DIR: "{variant.DLR.ImageClassification.ModelStore:artifacts:decompressedPath}/{configuration:/ModelResourceKey/armv7l}"
           DEFAULT_DLR_IC_IMAGE_DIR: "{artifacts:decompressedPath}/image_classification/sample_images/"
         Run:
           RequiresPrivilege: true
           script: |-
             . {variant.DLR:configuration:/MLRootPath}/greengrass_ml_dlr_venv/bin/activate
             python3 {artifacts:decompressedPath}/image_classification/inference.py
   ```

------

 Untuk informasi detail tentang membuat resep komponen, lihat [AWS IoT Greengrass referensi resep komponen](component-recipe-reference.md).

### Buat komponen inferensi
<a name="create-private-inference-component"></a>

Gunakan AWS IoT Greengrass konsol atau AWS CLI untuk membuat komponen menggunakan resep yang baru saja Anda tentukan. Setelah Anda membuat komponen, Anda dapat men-deploy-nya untuk melakukan inferensi pada perangkat Anda. Untuk contoh cara menggunakan komponen inferensi, lihat [Tutorial: Lakukan inferensi klasifikasi gambar sampel menggunakan Lite TensorFlow](ml-tutorial-image-classification.md).

#### Buat komponen inferensi kustom (konsol)
<a name="create-inference-component-console"></a>

1. Masuk ke [konsol AWS IoT Greengrass](https://console.aws.amazon.com/greengrass) tersebut.

1. Pada menu navigasi, pilih **Komponen**.

1. Pada halaman **Komponen**, pada tab **Komponen saya**, pilih **Buat komponen**.

1. Pada halaman **Buat Komponen**, di bawah **Informasi komponen**, pilih **Masukkan resep sebagai JSON** atau **Masukkan resep sebagai YAML** sebagai sumber komponen Anda.

1. Di kotak **Resep**, masukkan resep kustom yang Anda buat. 

1. Klik **Buat Komponen**.

#### Buat komponen inferensi khusus (AWS CLI)
<a name="create-inference-component-cli"></a>

Jalankan perintah berikut untuk membuat komponen baru dengan menggunakan resep yang telah Anda buat.

```
aws greengrassv2 create-component-version \
    --inline-recipe fileb://path/to/recipe/file
```

**catatan**  
Langkah ini menciptakan komponen dalam AWS IoT Greengrass layanan di AWS Cloud. Anda dapat menggunakan Greengrass CLI untuk mengembangkan, menguji, dan men-deploy komponen Anda secara lokal sebelum Anda meng-upload ke cloud. Lihat informasi yang lebih lengkap di [Kembangkan AWS IoT Greengrass komponen](develop-greengrass-components.md).