

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

# Buat subdeployments
<a name="create-subdeployments"></a>

**catatan**  
Fitur subdeployment tersedia di Greengrass nucleus versi 2.9.0 dan yang lebih baru. Tidak mungkin untuk menerapkan konfigurasi ke subdeployment dengan versi komponen inti Greengrass sebelumnya.

Subdeployment adalah penerapan yang menargetkan subset perangkat yang lebih kecil dalam penerapan induk. Anda dapat menggunakan subdeployments untuk menerapkan konfigurasi ke subset perangkat yang lebih kecil. Anda juga dapat membuat subdeployment untuk mencoba kembali penerapan induk yang gagal ketika satu atau beberapa perangkat dalam penerapan induk tersebut gagal. Dengan fitur ini, Anda dapat memilih perangkat yang gagal dalam penerapan induk tersebut dan membuat subdeployment untuk menguji konfigurasi hingga subdeployment berhasil. Setelah subdeployment berhasil, Anda dapat menerapkan ulang konfigurasi tersebut ke penerapan induk.

Ikuti langkah-langkah di bagian ini untuk membuat subdeployment dan memeriksa statusnya. Untuk informasi selengkapnya tentang cara membuat penerapan, lihat [Membuat](https://docs.aws.amazon.com/greengrass/v2/developerguide/create-deployments.html) penerapan.

**Untuk membuat subdeployment ()AWS CLI**

1. <a name="create-subdeployments-step1"></a>Jalankan perintah berikut untuk mengambil penerapan terbaru untuk grup sesuatu. Ganti ARN dalam perintah tersebut dengan ARN dari grup objek untuk kueri. Setel `--history-filter` **LATEST\$1ONLY** untuk melihat penerapan terbaru dari grup benda itu.

   ```
   aws greengrassv2 list-deployments --target-arn arn:aws:iot:region:account-id:thinggroup/thingGroupName --history-filter LATEST_ONLY
   ```

1. Salin `deploymentId` dari respons ke **list-deployments** perintah untuk digunakan pada langkah berikutnya.

1. Jalankan perintah berikut untuk mengambil status deployment. Ganti `deploymentId` dengan ID penyebaran untuk kueri.

   ```
   aws greengrassv2 get-deployment --deployment-id deploymentId
   ```

1. Salin `iotJobId` dari respons ke **get-deployment** perintah yang akan digunakan pada langkah berikut.

1. Jalankan perintah berikut untuk mengambil daftar eksekusi pekerjaan untuk pekerjaan yang ditentukan. Ganti *jobID* dengan `iotJobId` dari langkah sebelumnya. Ganti *status* dengan status yang ingin Anda filter. Anda dapat memfilter hasil dengan status berikut:
   + `QUEUED`
   + `IN_PROGRESS`
   + `SUCCEEDED`
   + `FAILED`
   + `TIMED_OUT`
   + `REJECTED`
   + `REMOVED`
   + `CANCELED`

   ```
   aws iot list-job-executions-for-job --job-id jobID --status status
   ```

1. Buat grup AWS IoT hal baru, atau gunakan grup hal yang sudah ada, untuk subdeployment Anda. Kemudian, tambahkan AWS IoT sesuatu ke grup benda ini. Anda menggunakan grup objek untuk mengelola armada perangkat inti Greengrass. Saat menerapkan komponen perangkat lunak ke perangkat, Anda dapat menargetkan perangkat individual atau grup perangkat. Anda dapat menambahkan perangkat ke grup benda dengan penerapan Greengrass aktif. Setelah ditambahkan, Anda kemudian dapat menyebarkan komponen perangkat lunak grup benda itu ke perangkat itu.

   Untuk membuat grup hal baru dan menambahkan perangkat Anda ke dalamnya, lakukan hal berikut:

   1. Buat grup AWS IoT hal. Ganti *MyGreengrassCoreGroup* dengan nama untuk grup hal baru. Anda tidak dapat menggunakan titik dua (:) dalam nama grup benda.
**catatan**  
Jika grup benda untuk subdeployment digunakan dengan satu`parentTargetArn`, itu tidak dapat digunakan kembali dengan armada induk yang berbeda. Jika grup sesuatu telah digunakan untuk membuat subdeployment untuk armada lain, API akan mengembalikan kesalahan.

      ```
      aws iot create-thing-group --thing-group-name MyGreengrassCoreGroup
      ```

      Jika permintaan berhasil, responsnya terlihat mirip dengan contoh berikut:

      ```
      {
        "thingGroupName": "MyGreengrassCoreGroup",
        "thingGroupArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/MyGreengrassCoreGroup",
        "thingGroupId": "4df721e1-ff9f-4f97-92dd-02db4e3f03aa"
      }
      ```

   1. Tambahkan inti Greengrass yang disediakan ke grup hal Anda. Jalankan perintah berikut dengan parameter ini:
      + Ganti *MyGreengrassCore* dengan nama inti Greengrass yang Anda sediakan.
      + Ganti *MyGreengrassCoreGroup* dengan nama grup barang Anda.

      ```
      aws iot add-thing-to-thing-group --thing-name MyGreengrassCore --thing-group-name MyGreengrassCoreGroup
      ```

      Perintah tersebut tidak memiliki output apa pun jika permintaan berhasil.

1. Buat file bernama `deployment.json`, lalu salin objek JSON berikut ke dalam file. Ganti *targetArn* dengan ARN dari grup AWS IoT benda yang akan ditargetkan untuk subdeployment. Target subdeployment hanya bisa berupa grup benda. Thing group ARNs memiliki format berikut:
   + **Kelompok hal** — `arn:aws:iot:region:account-id:thinggroup/thingGroupName`

   ```
   {
     "targetArn": "targetArn"
   }
   ```

1. Jalankan perintah berikut lagi untuk mendapatkan detail penerapan asli. Detail ini mencakup metadata, komponen, dan konfigurasi pekerjaan. Ganti *deploymentId* dengan ID dari[Step 1](#create-subdeployments-step1). Anda dapat menggunakan konfigurasi penerapan ini untuk mengonfigurasi subdeployment dan membuat perubahan sesuai kebutuhan.

   ```
   aws greengrassv2 get-deployment --deployment-id deploymentId
   ```

   Tanggapan berisi detail deployment. Salin salah satu pasangan kunci-nilai berikut dari respons **get-deployment** perintah ke dalam. `deployment.json` Anda dapat mengubah nilai-nilai ini untuk subdeployment. Untuk informasi selengkapnya tentang detail perintah ini, lihat [GetDeployment](https://docs.aws.amazon.com/greengrass/v2/APIReference/API_GetDeployment.html).
   + `components`— Komponen penyebaran. Untuk menghapus komponen, hapus dari objek ini.
   + `deploymentName`— Nama penyebaran.
   + `deploymentPolicies`— Kebijakan penyebaran.
   + `iotJobConfiguration`— Konfigurasi pekerjaan penerapan.
   + `parentTargetArn`— Target penyebaran induk.
   + `tags`— Tag penyebaran.

1. Jalankan perintah berikut untuk membuat subdeployment dari. `deployment.json` Ganti *subdeploymentName* dengan nama untuk subdeployment.

   ```
   aws greengrassv2 create-deployment --deployment-name subdeploymentName --cli-input-json file://deployment.json
   ```

   Responsnya mencakup a `deploymentId` yang mengidentifikasi subdeployment ini. Anda dapat menggunakan ID deployment untuk memeriksa status deployment. Untuk informasi selengkapnya, lihat [Memeriksa status penerapan](https://docs.aws.amazon.com/greengrass/v2/developerguide/check-deployment-status.html#check-cloud-deployment-status).

1. Jika subdeployment berhasil, Anda dapat menggunakan konfigurasinya untuk merevisi penerapan induk. Salin `deployment.json` yang Anda gunakan pada langkah sebelumnya. Ganti `targetArn` dalam file JSON dengan ARN penerapan induk dan jalankan perintah berikut untuk membuat penyebaran induk menggunakan konfigurasi baru ini.
**catatan**  
Jika Anda membuat revisi penerapan baru dari armada induk, ini akan menggantikan semua revisi penerapan dan subdeployment untuk penerapan induk tersebut. Untuk informasi selengkapnya, lihat [Merevisi penerapan](https://docs.aws.amazon.com/greengrass/v2/developerguide/revise-deployments.html).

   ```
   aws greengrassv2 create-deployment --cli-input-json file://deployment.json
   ```

   <a name="check-new-deployment-status"></a>Tanggapan meliputi `deploymentId` yang menentukan deployment ini. Anda dapat menggunakan ID deployment untuk memeriksa status deployment. Untuk informasi selengkapnya, lihat [Periksa status deployment](check-deployment-status.md#check-cloud-deployment-status).