

Pemberitahuan akhir dukungan: Pada 7 Oktober 2026, AWS akan menghentikan dukungan untuk. AWS IoT Greengrass Version 1 Setelah 7 Oktober 2026, Anda tidak akan lagi dapat mengakses sumber daya. AWS IoT Greengrass V1 Untuk informasi lebih lanjut, silakan kunjungi [Migrasi dari AWS IoT Greengrass Version 1](https://docs.aws.amazon.com/greengrass/v2/developerguide/migrate-from-v1.html).

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

# Menyebarkan AWS IoT Greengrass grup ke inti AWS IoT Greengrass
<a name="deployments"></a>

Gunakan AWS IoT Greengrass grup untuk mengatur entitas di lingkungan tepi Anda. Anda juga menggunakan grup untuk mengontrol cara entitas dalam grup berinteraksi satu sama lain dan dengan AWS Cloud. Sebagai contoh, hanya fungsi Lambda di dalam grup yang di-deploy untuk berjalan secara lokal, dan hanya perangkat di dalam grup yang dapat berkomunikasi menggunakan server MQTT lokal.

Sebuah grup harus menyertakan [inti](gg-core.md), yang merupakan AWS IoT perangkat yang menjalankan perangkat lunak AWS IoT Greengrass Core. Inti bertindak sebagai gateway tepi dan menyediakan AWS IoT Core kemampuan di lingkungan tepi. Bergantung pada kebutuhan bisnis Anda, Anda juga dapat menambahkan entitas berikut ke grup:
+ **Perangkat klien**. Diwakili sebagai hal-hal dalam AWS IoT registri. Perangkat ini harus menjalankan [FreeRTOS](https://docs.aws.amazon.com/freertos/latest/userguide/freertos-lib-gg-connectivity.html) atau menggunakan [AWS IoT Device](what-is-gg.md#iot-device-sdk) SDK [AWS IoT Greengrass atau Discovery](gg-discover-api.md) API untuk mendapatkan informasi koneksi untuk inti. Hanya perangkat klien yang merupakan anggota grup yang dapat terhubung ke inti.
+ **Fungsi Lambda**. Aplikasi serverless yang didefinisikan pengguna yang menjalankan kode pada core. Fungsi Lambda ditulis dan direferensikan dari grup AWS Lambda Greengrass. Untuk informasi selengkapnya, lihat [Jalankan fungsi Lambda pada inti AWS IoT Greengrass](lambda-functions.md).
+ **Konektor**. Aplikasi serverless standar yang menjalankan kode pada core. Konektor dapat menyediakan integrasi bawaan dengan infrastruktur lokal, protokol perangkat AWS, dan layanan cloud lainnya. Untuk informasi selengkapnya, lihat [Integrasikan dengan layanan dan protokol menggunakan konektor Greengrass](connectors.md).
+ **Langganan**. Mendefinisikan penerbit, pelanggan, dan topik MQTT (atau mata pelajaran) yang berwenang untuk komunikasi MQTT.
+ **Sumber daya**. Referensi ke [perangkat dan volume lokal](access-local-resources.md), [model machine learning](ml-inference.md), dan [rahasia](secrets.md), digunakan untuk kontrol akses oleh fungsi Lambda Greengrass dan konektor.
+ **Log**. Konfigurasi logging untuk komponen AWS IoT Greengrass sistem dan fungsi Lambda. Untuk informasi selengkapnya, lihat [Pemantauan dengan AWS IoT Greengrass log](greengrass-logs-overview.md).

Anda mengelola grup Greengrass Anda di dan kemudian menyebarkannya AWS Cloud ke inti. Salinan deployment konfigurasi grup untuk file `group.json` pada perangkat core. File ini terletak di `greengrass-root/ggc/deployments/group`.

![\[Definisi cloud dari grup Greengrass di-deploy ke perangkat core.\]](http://docs.aws.amazon.com/id_id/greengrass/v1/developerguide/images/group-deploy.png)


**catatan**  
Selama deployment, proses Greengrass daemon pada perangkat core berhenti lalu dimulai kembali.

## Menerapkan grup dari konsol AWS IoT
<a name="manage-deployments-console"></a>

Anda dapat menerapkan grup dan mengelola penerapannya dari halaman konfigurasi grup di konsol. AWS IoT 

**catatan**  
Untuk membuka halaman ini di konsol, pilih Perangkat **Greengrass**, **lalu Grup (V1), dan kemudian di bawah Grup** **Greengrass**, pilih grup Anda.

**Untuk menyebarkan versi grup saat ini**  
+ Dari halaman konfigurasi grup, pilih **Deploy**.

**Untuk melihat riwayat penyebaran grup**  
Riwayat deployment grup mencakup tanggal dan waktu, versi grup, dan status setiap upaya deployment.  

1. Dari halaman konfigurasi grup, pilih tab **Deployment.**

1. **Untuk melihat informasi selengkapnya tentang penerapan, termasuk pesan kesalahan, pilih **Penerapan dari AWS IoT konsol, di bawah Perangkat Greengrass**.**

**Untuk menerapkan ulang penyebaran grup**  
Anda mungkin ingin men-deploy ulang deployment jika deployment saat ini gagal atau kembali ke versi grup yang berbeda.  

1. **Dari AWS IoT konsol, pilih perangkat **Greengrass**, lalu pilih Grup (V1).**

1. Pilih tab **Deployment.**

1. **Pilih penerapan yang ingin Anda gunakan kembali dan pilih Redeploy.**

**Untuk mengatur ulang penerapan grup**  
Anda mungkin ingin mengatur ulang deployment grup untuk memindahkan atau menghapus grup atau untuk menghapus informasi deployment. Untuk informasi selengkapnya, lihat [Atur ulang deployment](reset-deployments-scenario.md).  

1. **Dari AWS IoT konsol, pilih perangkat **Greengrass**, lalu pilih Grup (V1).**

1. Pilih tab **Deployment.**

1. Pilih penerapan yang ingin Anda atur ulang dan pilih Atur **ulang penerapan**.

## Menerapkan grup dengan API AWS IoT Greengrass
<a name="manage-deployments-api"></a>

 AWS IoT Greengrass API menyediakan tindakan berikut untuk menyebarkan AWS IoT Greengrass grup dan mengelola penerapan grup. Anda dapat memanggil tindakan ini dari AWS CLI, AWS IoT Greengrass API, atau AWS SDK.


| Tindakan | Deskripsi | 
| --- | --- | 
| [CreateDeployment](https://docs.aws.amazon.com/greengrass/v1/apireference/createdeployment-post.html) |  Membuat sebuah `NewDeployment` atau `Redeployment` deployment. Anda mungkin ingin men-deploy ulang deployment jika deployment saat ini gagal. Atau Anda mungkin ingin men-deploy ulang untuk kembali ke versi grup yang berbeda. | 
| [GetDeploymentStatus](https://docs.aws.amazon.com/greengrass/v1/apireference/getdeploymentstatus-get.html) |  Mengembalikan status sebuah deployment: `Building`, `InProgress`, `Success`, atau `Failure`. Anda dapat mengonfigurasi EventBridge acara Amazon untuk menerima pemberitahuan penerapan. Untuk informasi selengkapnya, lihat [Dapatkan notifikasi deployment](deployment-notifications.md). | 
| [ListDeployments](https://docs.aws.amazon.com/greengrass/v1/apireference/listdeployments-get.html) | Mengembalikan sejarah deployment untuk grup. | 
| [ResetDeployments](https://docs.aws.amazon.com/greengrass/v1/apireference/resetdeployments-post.html) |  Mengatur ulang deployment untuk grup. Anda mungkin ingin mengatur ulang deployment grup untuk memindahkan atau menghapus grup atau untuk menghapus informasi deployment. Untuk informasi selengkapnya, lihat [Atur ulang deployment](reset-deployments-scenario.md). | 

**catatan**  
Untuk informasi tentang operasi deployment massal, lihat [Buat deployment massal untuk grup](bulk-deploy-cli.md).

### Mendapatkan ID grup
<a name="api-get-group-id"></a>

ID grup umumnya digunakan dalam tindakan API. Anda dapat menggunakan [ListGroups](https://docs.aws.amazon.com/greengrass/v1/apireference/listgroups-get.html)tindakan untuk menemukan ID grup target dari daftar grup Anda. Misalnya, di AWS CLI, gunakan `list-groups` perintah.

```
aws greengrass list-groups
```

Anda juga dapat menyertakan `query` opsi untuk memfilter hasil. Sebagai contoh:
+ Untuk mendapatkan grup yang paling baru dibuat:

  ```
  aws greengrass list-groups --query "reverse(sort_by(Groups, &CreationTimestamp))[0]"
  ```
+ Untuk mendapatkan grup dengan nama:

  ```
  aws greengrass list-groups --query "Groups[?Name=='MyGroup']"
  ```

  Nama grup tidak perlu unik, sehingga beberapa grup mungkin ditampilkan.

Berikut ini adalah contoh `list-groups` respons. Informasi untuk setiap grup termasuk ID grup (di dalam `Id` properti) dan ID dari versi grup terbaru (dalam `LatestVersion` properti). Untuk mendapatkan versi lain IDs untuk grup, gunakan ID grup dengan [ListGroupVersions](https://docs.aws.amazon.com/greengrass/v1/apireference/listgroupversions-get.html).

**catatan**  
<a name="find-group-ids-console"></a>Anda juga dapat menemukan nilai-nilai ini di AWS IoT konsol. ID grup ditampilkan pada halaman **Pengaturan** grup. Versi grup IDs ditampilkan di tab **Deployment** grup.

```
{
    "Groups": [
        {
            "LatestVersionArn": "arn:aws:us-west-2:123456789012:/greengrass/groups/00dedaaa-ac16-484d-ad77-c3eedEXAMPLE/versions/4cbc3f07-fc5e-48c4-a50e-7d356EXAMPLE",
            "Name": "MyFirstGroup",
            "LastUpdatedTimestamp": "2019-11-11T05:47:31.435Z",
            "LatestVersion": "4cbc3f07-fc5e-48c4-a50e-7d356EXAMPLE",
            "CreationTimestamp": "2019-11-11T05:47:31.435Z",
            "Id": "00dedaaa-ac16-484d-ad77-c3eedEXAMPLE",
            "Arn": "arn:aws:us-west-2:123456789012:/greengrass/groups/00dedaaa-ac16-484d-ad77-c3eedEXAMPLE"
        },
        {
            "LatestVersionArn": "arn:aws:us-west-2:123456789012:/greengrass/groups/036ceaf9-9319-4716-ba2a-237f9EXAMPLE/versions/8fe9e8ec-64d1-4647-b0b0-01dc8EXAMPLE",
            "Name": "GreenhouseSensors",
            "LastUpdatedTimestamp": "2020-01-07T19:58:36.774Z",
            "LatestVersion": "8fe9e8ec-64d1-4647-b0b0-01dc8EXAMPLE",
            "CreationTimestamp": "2020-01-07T19:58:36.774Z",
            "Id": "036ceaf9-9319-4716-ba2a-237f9EXAMPLE",
            "Arn": "arn:aws:us-west-2:123456789012:/greengrass/groups/036ceaf9-9319-4716-ba2a-237f9EXAMPLE"
        },
        ...
    ]
}
```

Jika Anda tidak menentukan Wilayah AWS, AWS CLI perintah menggunakan Wilayah default dari profil Anda. Untuk mengembalikan grup di Wilayah yang berbeda, sertakan *region* opsi. Sebagai contoh:

```
aws greengrass list-groups --region us-east-1
```

## Ikhtisar model objek AWS IoT Greengrass grup
<a name="api-overview"></a>

Saat memprogram dengan AWS IoT Greengrass API, akan sangat membantu untuk memahami model objek grup Greengrass.

### Grup
<a name="api-overview-groups"></a>

Dalam AWS IoT Greengrass API, `Group` objek tingkat atas terdiri dari metadata dan daftar objek. `GroupVersion` `GroupVersion`objek dikaitkan dengan ID `Group` oleh.

![\[Diagram grup, yang terdiri dari metadata dan daftar versi grup.\]](http://docs.aws.amazon.com/id_id/greengrass/v1/developerguide/images/om-group.png)


### Versi grup
<a name="api-overview-versions"></a>

`GroupVersion` objek mendefinisikan keanggotaan grup. Masing-masing `GroupVersion` mereferensi `CoreDefinitionVersion` dan versi komponen lainnya oleh ARN. Referensi ini menentukan entitas mana yang akan disertakan di dalam grup.

![\[Diagram dari versi grup yang mereferensi jenis versi lain oleh ARN.\]](http://docs.aws.amazon.com/id_id/greengrass/v1/developerguide/images/om-groupversion.png)


Sebagai contoh, untuk menyertakan tiga fungsi Lambda, satu perangkat, dan dua langganan di dalam grup, `GroupVersion` referensi:
+ Sebuah `CoreDefinitionVersion` yang berisi core yang dibutuhkan.
+ Sebuah `FunctionDefinitionVersion` yang berisi tiga fungsi. 
+ `DeviceDefinitionVersion`Yang berisi perangkat klien.
+ Sebuah `SubscriptionDefinitionVersion` yang berisi dua langganan.

Men-deploy `GroupVersion` ke perangkat core menentukan entitas yang tersedia di lingkungan lokal dan cara mereka dapat berinteraksi.

### Komponen grup
<a name="api-overview-group-components"></a>

Komponen yang Anda tambahkan ke grup memiliki hirarki tiga tingkat:
+ *Definisi* yang mereferensikan daftar *DefinitionVersion*objek dari jenis tertentu. Sebagai contoh, `DeviceDefinition` mereferensikan daftar `DeviceDefinitionVersion` objek.
+ A *DefinitionVersion*yang berisi satu set entitas dari tipe tertentu. Sebagai contoh, `DeviceDefinitionVersion` berisi sebuah daftar dari `Device` objek.
+ Entitas individu yang mendefinisikan properti dan perilaku mereka. Misalnya, a `Device` mendefinisikan ARN dari perangkat klien yang sesuai dalam registri, ARN sertifikat AWS IoT perangkatnya, dan apakah bayangan lokalnya disinkronkan secara otomatis dengan cloud.

  Anda dapat menambahkan jenis entitas berikut ke grup:
  + [Konektor](https://docs.aws.amazon.com/greengrass/v1/apireference/definitions-connector.html)
  + [Inti](https://docs.aws.amazon.com/greengrass/v1/apireference/definitions-core.html)
  + [Perangkat](https://docs.aws.amazon.com/greengrass/v1/apireference/definitions-device.html)
  + [Fungsi](https://docs.aws.amazon.com/greengrass/v1/apireference/definitions-function.html)
  + [Logger](https://docs.aws.amazon.com/greengrass/v1/apireference/definitions-logger.html)
  + [Sumber Daya](https://docs.aws.amazon.com/greengrass/v1/apireference/definitions-resource.html)
  + [Berlangganan](https://docs.aws.amazon.com/greengrass/v1/apireference/definitions-subscription.html)

Contoh berikut `DeviceDefinition` mereferensikan tiga `DeviceDefinitionVersion` objek yang masing-masing berisi beberapa `Device` objek. Hanya satu `DeviceDefinitionVersion` pada suatu waktu digunakan di dalam grup.

![\[Diagram hierarki perangkat, yang terdiri dari DeviceDefinition, DeviceDefinitionVersion, dan objek Perangkat.\]](http://docs.aws.amazon.com/id_id/greengrass/v1/developerguide/images/om-devicedefinition.png)


### Memperbarui grup
<a name="api-update-groups"></a>

Di AWS IoT Greengrass API, Anda menggunakan versi untuk memperbarui konfigurasi grup. Versi tidak dapat diubah, jadi untuk menambah, menghapus, atau mengubah komponen grup, Anda harus membuat *DefinitionVersion*objek yang berisi entitas baru atau yang diperbarui.

Anda dapat mengaitkan *DefinitionVersions*objek baru dengan objek *Definisi* baru atau yang sudah ada. Sebagai contoh, Anda dapat menggunakan opsi `CreateFunctionDefinition` tindakan untuk membuat `FunctionDefinition` yang mencakup `FunctionDefinitionVersion` sebagai versi awal, atau Anda dapat menggunakan `CreateFunctionDefinitionVersion` tindakan dan mereferensi yang sudah ada `FunctionDefinition`.

Setelah Anda membuat komponen grup, Anda membuat sebuah `GroupVersion` yang berisi semua *DefinitionVersion*objek yang ingin Anda sertakan dalam grup. Kemudian, Anda men-deploy `GroupVersion`.

Untuk men-deploy `GroupVersion`, hal itu harus mereferensi `CoreDefinitionVersion` yang berisi persis satu `Core`. Semua entitas yang direferensikan harus menjadi anggota grup. Selain itu, peran [layanan Greengrass](service-role.md) harus dikaitkan dengan peran Akun AWS Anda di tempat Wilayah AWS Anda menggunakan. `GroupVersion`

**catatan**  
Tindakan `Update` dalam API digunakan untuk mengubah nama dari `Group` atau komponen *Definisi* objek.

**Memperbarui entitas yang mereferensikan AWS sumber daya**

Fungsi Greengrass Lambda dan sumber daya [rahasia menentukan properti khusus GreenGrass dan](secrets.md) juga referensi sumber daya yang sesuai. AWS Untuk memperbarui entitas ini, Anda dapat membuat perubahan pada AWS sumber daya yang sesuai, bukan objek Greengrass Anda. Misalnya, fungsi Lambda mereferensikan fungsi AWS Lambda dan juga menentukan siklus hidup dan properti lain yang spesifik untuk grup Greengrass.
+ Untuk memperbarui kode fungsi Lambda atau dependensi yang dikemas, buat perubahan Anda di dalam AWS Lambda. Selama penyebaran grup berikutnya, perubahan ini diambil dari AWS Lambda dan disalin ke lingkungan lokal Anda.
+ Untuk memperbarui [properti khusus Greengrass](lambda-group-config.md), Anda membuat `FunctionDefinitionVersion` yang berisi `Function` properti yang diperbarui.

**catatan**  
Fungsi Greengrass Lambda dapat mereferensi fungsi Lambda dengan ARN alias atau ARN versi. Jika Anda mereferensikan ARN alias (disarankan), Anda tidak perlu memperbarui `FunctionDefinitionVersion` (atau `SubscriptionDefinitionVersion`) ketika Anda menerbitkan versi fungsi baru di dalam AWS Lambda. Untuk informasi selengkapnya, lihat [Fungsi Referensi Lambda dengan alias atau versi](lambda-functions.md#lambda-versions-aliases).

## Lihat juga
<a name="deployments-see-also"></a>
+ [Dapatkan notifikasi deployment](deployment-notifications.md)
+ [Atur ulang deployment](reset-deployments-scenario.md)
+ [Buat deployment massal untuk grup](bulk-deploy-cli.md)
+ [Memecahkan Masalah Penerapan](gg-troubleshooting.md#gg-troubleshooting-deploymentissues)<a name="see-also-gg-api-cli"></a>
+ [AWS IoT Greengrass Version 1 Referensi API](https://docs.aws.amazon.com/greengrass/v1/apireference/)
+ <a name="see-also-gg-cli"></a>[AWS IoT Greengrass perintah](https://docs.aws.amazon.com/cli/latest/reference/greengrass/index.html) dalam *Referensi AWS CLI Perintah*

# Dapatkan notifikasi deployment
<a name="deployment-notifications"></a>

Aturan EventBridge acara Amazon memberi Anda pemberitahuan tentang perubahan status untuk penerapan grup Greengrass Anda. EventBridge memberikan aliran peristiwa sistem yang mendekati waktu nyata yang menjelaskan perubahan AWS sumber daya. AWS IoT Greengrass mengirimkan acara ini *setidaknya sekali*. EventBridge Ini berarti bahwa AWS IoT Greengrass mungkin mengirim beberapa salinan dari acara tertentu untuk memastikan pengiriman. Selain itu, pendengar peristiwa Anda mungkin tidak menerima peristiwa dalam urutan peristiwa yang terjadi.

**catatan**  
Amazon EventBridge adalah layanan bus acara yang dapat Anda gunakan untuk menghubungkan aplikasi Anda dengan data dari berbagai sumber, seperti perangkat inti [Greengrass](telemetry.md) dan pemberitahuan penyebaran. Untuk informasi selengkapnya, lihat [Apa itu Amazon EventBridge?](https://docs.aws.amazon.com/eventbridge/latest/userguide/what-is-amazon-eventbridge.html) di *Panduan EventBridge Pengguna Amazon*.

AWS IoT Greengrass memancarkan peristiwa saat penerapan grup mengubah status. Anda dapat membuat EventBridge aturan yang berjalan untuk semua transisi status atau transisi ke status yang Anda tentukan. Saat penerapan memasuki status yang memulai aturan, EventBridge memanggil tindakan target yang ditentukan dalam aturan. Hal ini mengizinkan Anda untuk mengirim pemberitahuan, menangkap informasi peristiwa, mengambil tindakan korektif, atau menginisiasi peristiwa lain untuk merespon perubahan keadaan. Sebagai contoh, Anda dapat membuat aturan untuk kasus penggunaan berikut:
+ Memulai operasi pasca deployment, seperti mengunduh aset dan memberi tahu personil.
+ Kirim pemberitahuan setelah deployment berhasil atau gagal.
+ Terbitkankan metrik kustom tentang peristiwa deployment.

AWS IoT Greengrass memancarkan peristiwa ketika penerapan memasuki status berikut:`Building`,, `InProgress``Success`, dan. `Failure`

**catatan**  
Memantau status [deployment massal](bulk-deploy-cli.md) saat ini tidak didukung. Namun, AWS IoT Greengrass memancarkan peristiwa perubahan status untuk penerapan grup individu yang merupakan bagian dari penyebaran massal.

## Peristiwa perubahan status deployment grup
<a name="events-message-format"></a>

[peristiwa](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/CloudWatchEventsandEventPatterns.html) untuk perubahan keadaan deployment menggunakan format berikut:

```
{
    "version":"0",
    "id":" cd4d811e-ab12-322b-8255-EXAMPLEb1bc8",
    "detail-type":"Greengrass Deployment Status Change",
    "source":"aws.greengrass",
    "account":"123456789012",
    "time":"2018-03-22T00:38:11Z",
    "region":"us-west-2",
    "resources":[],
    "detail":{    
        "group-id": "284dcd4e-24bc-4c8c-a770-EXAMPLEf03b8",
        "deployment-id": "4f38f1a7-3dd0-42a1-af48-EXAMPLE09681",
        "deployment-type": "NewDeployment|Redeployment|ResetDeployment|ForceResetDeployment",
        "status": "Building|InProgress|Success|Failure"
    }
}
```

Anda dapat membuat aturan yang berlaku untuk satu atau lebih grup. Anda dapat memfilter aturan berdasarkan satu atau beberapa jenis deployment berikut dan keadaan deployment:

**Jenis penyebaran**  
+ `NewDeployment`. Deployment pertama dari versi grup.
+ `ReDeployment`. Sebuah deployment ulang versi grup.
+ `ResetDeployment`. Menghapus informasi penyebaran yang disimpan di dalam AWS Cloud dan di inti. AWS IoT Greengrass Untuk informasi selengkapnya, lihat [Atur ulang deployment](reset-deployments-scenario.md).
+ `ForceResetDeployment`. Menghapus informasi deployment yang disimpan di AWS Cloud dan melaporkan keberhasilan tanpa menunggu core untuk merespon. Juga menghapus informasi deployment yang disimpan pada core jika core terhubung atau ketika terhubung selanjutnya.

**Status penyebaran**  
+ `Building`. AWS IoT Greengrass memvalidasi konfigurasi grup dan membangun artefak penerapan.
+ `InProgress`. Penyebaran sedang berlangsung pada AWS IoT Greengrass intinya.
+ `Success`. Deployment berhasil.
+ `Failure`. Deployment gagal.

Ada kemungkinan bahwa peristiwa dapat diduplikasi atau rusak. Untuk menentukan urutan peristiwa, gunakan properti `time` ini.

**catatan**  
AWS IoT Greengrass tidak menggunakan `resources` properti, jadi selalu kosong.

## Prasyarat untuk membuat aturan EventBridge
<a name="create-events-rule-prereqs"></a>

Sebelum Anda membuat EventBridge aturan untuk AWS IoT Greengrass, lakukan hal berikut:
+ Biasakan diri Anda dengan acara, aturan, dan target di EventBridge.
+ Buat dan konfigurasikan target yang dipanggil oleh EventBridge aturan Anda. Aturan dapat menginvokasi berbagai jenis target, termasuk:
  + Amazon Simple Notification Service (Amazon SNS)
  + AWS Lambda fungsi
  + Amazon Kinesis Video Streams
  + Antrean Amazon Simple Queue Service (Amazon SQS)

Untuk informasi selengkapnya, lihat [Apa itu Amazon EventBridge?](https://docs.aws.amazon.com/eventbridge/latest/userguide/what-is-amazon-eventbridge.html) dan [Memulai dengan Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-getting-set-up.html) di *Panduan EventBridge Pengguna Amazon*.

## Konfigurasikan pemberitahuan deployment (konsol)
<a name="create-events-rule-console"></a>

Gunakan langkah-langkah berikut untuk membuat EventBridge aturan yang menerbitkan topik Amazon SNS saat status penerapan berubah untuk grup. Hal ini memungkinkan server web, alamat email, dan pelanggan topik lainnya untuk menanggapi peristiwa tersebut. Untuk informasi selengkapnya, lihat [Membuat EventBridge aturan yang memicu peristiwa dari AWS sumber daya](https://docs.aws.amazon.com/eventbridge/latest/userguide/create-eventbridge-rule.html) di *Panduan EventBridge Pengguna Amazon*.

1. Buka [ EventBridgekonsol Amazon](https://console.aws.amazon.com/events/).

1. Di panel navigasi, pilih **Aturan**.

1. Pilih **Buat aturan**.

1. Masukkan nama dan deskripsi untuk aturan.

   Aturan tidak boleh memiliki nama yang sama dengan aturan lain di Wilayah yang sama dan di bus kejadian yang sama.

1. Untuk **bus acara**, pilih bus acara yang ingin Anda kaitkan dengan aturan ini. Jika Anda ingin aturan ini cocok dengan acara yang berasal dari akun Anda, pilih **bus acara AWS default**. Ketika AWS layanan di akun Anda memancarkan suatu acara, itu selalu masuk ke bus acara default akun Anda.

1. Untuk **Tipe aturan**, pilih **Aturan dengan pola peristiwa**.

1. Pilih **Selanjutnya**.

1. Untuk **Sumber peristiwa**, pilih **Layanan AWS **.

1. Untuk **pola Acara**, pilih **AWS layanan**.

1. Untuk **AWS layanan**, pilih Greengrass.

1. Untuk **Tipe peristiwa**, pilih **Perubahan Status Deployment Greengrass**.
**catatan**  
**AWS API Call via** tipe CloudTrail event didasarkan pada AWS IoT Greengrass integrasi dengan AWS CloudTrail. Anda dapat menggunakan opsi ini untuk membuat aturan yang diprakarsai oleh panggilan baca atau tulis ke AWS IoT Greengrass API. Untuk informasi selengkapnya, lihat [Pencatatan panggilan AWS IoT Greengrass API dengan AWS CloudTrail](logging-using-cloudtrail.md).

1. Pilih keadaan deployment yang menginisiasi pemberitahuan.
   + Untuk menerima pemberitahuan untuk semua peristiwa perubahan keadaan, pilih **Keadaan apa pun**.
   + Untuk menerima notifikasi untuk beberapa peristiwa perubahan keadaan saja, pilih **Keadaan tertentu**, lalu pilih keadaan target.

1. Pilih tipe deployment yang menginisiasi pemberitahuan.
   + Untuk menerima pemberitahuan untuk semua tipe deployment, pilih **Keadaan apa pun**.
   + Untuk menerima notifikasi untuk beberapa tipe deployment saja, pilih **Keadaan tertentu**, lalu pilih tipe deployment target.

1. Pilih **Berikutnya**.

1. Untuk **Jenis target**, pilih **Layanan AWS **.

1. Untuk **Pilih target**, konfigurasikan target Anda. Contoh ini menggunakan topik Amazon SNS, tetapi Anda dapat mengonfigurasi tipe target lain untuk mengirim pemberitahuan.

   1. Untuk **Target**, pilih **topik SNS**.

   1. Untuk **Topik**, pilih topik target Anda.

   1. Pilih **Berikutnya**.

1. Di bawah **Tag**, tentukan tag untuk aturan atau biarkan bidang kosong.

1. Pilih **Berikutnya**.

1. Tinjau detail aturan dan pilih **Buat aturan**.

## Konfigurasikan pemberitahuan deployment (CLI)
<a name="create-events-rule-cli"></a>

Gunakan langkah-langkah berikut untuk membuat EventBridge aturan yang menerbitkan topik Amazon SNS saat status penerapan berubah untuk grup. Hal ini memungkinkan server web, alamat email, dan pelanggan topik lainnya untuk menanggapi peristiwa tersebut.

1. Buat aturan.
   + Ganti *group-id* dengan ID AWS IoT Greengrass grup Anda.

   ```
   aws events put-rule \
     --name TestRule \
     --event-pattern "{\"source\": [\"aws.greengrass\"], \"detail\": {\"group-id\": [\"group-id\"]}}"
   ```

   Properti yang dihilangkan dari tersebut pola akan diabaikan.

1. Tambahkan topik sebagai target aturan.
   + Ganti *topic-arn* dengan ARN topik Amazon SNS Anda.

   ```
   aws events put-targets \
     --rule TestRule \
     --targets "Id"="1","Arn"="topic-arn"
   ```
**catatan**  
Untuk mengizinkan Amazon EventBridge memanggil topik target Anda, Anda harus menambahkan kebijakan berbasis sumber daya ke topik Anda. Untuk informasi selengkapnya, lihat [izin Amazon SNS di Panduan](https://docs.aws.amazon.com/eventbridge/latest/userguide/resource-based-policies-eventbridge.html#sns-permissions) Pengguna *Amazon EventBridge *.

Untuk informasi selengkapnya, lihat [Peristiwa dan pola acara EventBridge di](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-and-event-patterns.html) *Panduan EventBridge Pengguna Amazon*.

## Konfigurasikan pemberitahuan deployment (CloudFormation)
<a name="create-events-rule-cloudformation"></a>

Gunakan CloudFormation templat untuk membuat EventBridge aturan yang mengirim pemberitahuan tentang perubahan status untuk penerapan grup Greengrass Anda. Untuk informasi selengkapnya, lihat [referensi jenis EventBridge sumber daya Amazon](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_Events.html) di *Panduan AWS CloudFormation Pengguna*.

## Lihat juga
<a name="deployment-notifications-see-also"></a>
+ [Menyebarkan AWS IoT Greengrass grup ke inti AWS IoT Greengrass](deployments.md)
+ [Apa itu Amazon EventBridge?](https://docs.aws.amazon.com/eventbridge/latest/userguide/what-is-amazon-eventbridge.html) di *Panduan EventBridge Pengguna Amazon*

# Atur ulang deployment
<a name="reset-deployments-scenario"></a>

Fitur ini tersedia untuk AWS IoT Greengrass Core v1.1 dan yang lebih baru.

Anda mungkin ingin mengatur ulang deployment grup ke:
+ Hapus grup, seperti saat Anda ingin memindahkan inti grup ke grup lain, atau inti grup telah direimage. Sebelum menghapus grup, Anda harus mengatur ulang penerapan grup untuk menggunakan inti dengan grup Greengrass lain.
+ Memindahkan core grup ke grup yang berbeda.
+ Mengembalikan grup ke keadaannya sebelum deployment apa pun.
+ Menghapus konfigurasi deployment dari perangkat core.
+ Menghapus data sensitif dari perangkat core atau dari cloud.
+ Men-deploy konfigurasi grup baru ke core tanpa harus mengganti core dengan yang lain di dalam grup saat ini.

**catatan**  
Fungsionalitas pengaturan ulang deployment tidak tersedia di AWS IoT Greengrass Perangkat lunak Core v1.0.0. Anda tidak dapat menghapus grup yang telah di-deploy menggunakan v1.0.0.

Operasi pengaturan ulang deployment pertama membersihkan semua informasi deployment yang disimpan di dalam cloud untuk grup tertentu. Kemudian menginstruksikan perangkat core grup untuk membersihkan semua informasi terkait deployment juga (fungsi Lambda, catatan pengguna, database bayangan dan sertifikat server, tetapi bukan sertifikat yang didefinisikan pengguna `config.json` atau sertifikat core Greengrass). Anda tidak dapat memulai pengaturan ulang deployment untuk grup jika grup saat ini memiliki deployment dengan status `In Progress` atau `Building`.

## Setel ulang penerapan dari konsol AWS IoT
<a name="reset-deployments-console"></a>

Anda dapat mengatur ulang penerapan grup dari halaman konfigurasi grup di konsol. AWS IoT 

1. <a name="console-gg-groups"></a>**Di panel navigasi AWS IoT konsol, di bawah **Kelola**, perluas perangkat **Greengrass**, lalu pilih Grup (V1).**

1. Pilih grup target.

1. Dari tab **Deployment**, pilih **Reset** deployment.

1. **Di kotak dialog **Reset deployment for Greengrass Group** ini, ketik **confirm** untuk setuju, dan pilih Reset deployment.**

## Setel ulang penerapan dengan API AWS IoT Greengrass
<a name="reset-deployments-api"></a>

Anda dapat menggunakan `ResetDeployments` tindakan di AWS CLI, AWS IoT Greengrass API, atau AWS SDK untuk mengatur ulang penerapan. Contoh di dalam topik ini menggunakan CLI.

```
aws greengrass reset-deployments --group-id GroupId [--force]
```Argumen untuk `reset-deployments` perintah CLI:

`--group-id`  
ID Grup. Gunakan `list-groups` perintah untuk mendapatkan nilai ini.

`--force`  
Tidak wajib. Gunakan parameter ini jika perangkat core grup telah hilang, dicuri, atau dihancurkan. Opsi ini menyebabkan proses pengaturan ulang deployment untuk melaporkan keberhasilan setelah semua informasi deployment di cloud telah dibersihkan, tanpa menunggu perangkat core merespons. Namun, jika perangkat core menjadi aktif, ia juga melakukan operasi pembersihan.

Output dari `reset-deployments` perintah CLI terlihat seperti ini:

```
{
    "DeploymentId": "4db95ef8-9309-4774-95a4-eea580b6ceef",
    "DeploymentArn": "arn:aws:greengrass:us-west-2:106511594199:/greengrass/groups/b744ed45-a7df-4227-860a-8d4492caa412/deployments/4db95ef8-9309-4774-95a4-eea580b6ceef"
}
```

Anda dapat memeriksa status pengaturan ulang deployment dengan `get-deployment-status` perintah CLI:

```
aws greengrass get-deployment-status --deployment-id DeploymentId --group-id GroupId
```Argumen untuk `get-deployment-status` perintah CLI:

`--deployment-id`  
ID deployment.

`--group-id`  
ID grup.

Output dari `get-deployment-status` perintah CLI terlihat seperti ini:

```
{
    "DeploymentStatus": "Success",
    "UpdatedAt": "2017-04-04T00:00:00.000Z"
}
```

Mengatur `DeploymentStatus` ke `Building` ketika pengaturan ulang deployment sedang dipersiapkan. Ketika penerapan reset sudah siap tetapi AWS IoT Greengrass inti belum mengambil penerapan reset, adalah`DeploymentStatus`. `InProgress`

Jika operasi pengaturan ulang gagal, informasi kesalahan dikembalikan di dalam respon.

## Lihat juga
<a name="reset-deployments-see-also"></a>
+ [Menyebarkan AWS IoT Greengrass grup ke inti AWS IoT Greengrass](deployments.md)
+ [ResetDeployments ](https://docs.aws.amazon.com/greengrass/v1/apireference/resetdeployments-post.html)di *Referensi AWS IoT Greengrass Version 1 API*
+ [GetDeploymentStatus](https://docs.aws.amazon.com/greengrass/v1/apireference/getdeploymentstatus-get.html)di *Referensi AWS IoT Greengrass Version 1 API*

# Buat deployment massal untuk grup
<a name="bulk-deploy-cli"></a>

 Anda dapat menggunakan panggilan API sederhana untuk deployment sejumlah besar grup Greengrass sekaligus. Deployment ini dipicu dengan tingkat adaptif yang memiliki batas atas tetap. 

 Tutorial ini menjelaskan cara menggunakan AWS CLI untuk membuat dan memantau penyebaran grup massal di AWS IoT Greengrass. Contoh deployment massal dalam tutorial ini berisi beberapa grup. Anda dapat menggunakan contoh dalam implementasi Anda untuk menambahkan sebanyak grup yang Anda butuhkan. 

 Tutorial ini berisi langkah-langkah tingkat tinggi berikut: 

1. [Buat dan unggah file input deployment massal](#bulk-deploy-cli-create-input-file)

1. [Membuat dan mengonfigurasi peran eksekusi IAM untuk penerapan massal](#bulk-deploy-cli-create-role)

1. [Izinkan akses peran eksekusi ke Bucket S3 Anda](#bulk-deploy-cli-modify-bucket)

1. [Men-deploy grup](#bulk-deploy-cli-start-bulk-deployments)

1. [Uji deployment](#bulk-deploy-cli-test)

## Prasyarat
<a name="bulk-deploy-cli-prerequisites"></a>

 Untuk menyelesaikan tutorial ini, Anda memerlukan: 
+  Satu atau lebih grup Greengrass yang dapat di-deploy. Untuk informasi lebih lanjut tentang membuat AWS IoT Greengrass grup and core, lihat [Memulai dengan AWS IoT Greengrass](gg-gs.md). 
+  Yang AWS CLI diinstal dan dikonfigurasi pada mesin Anda. Untuk selengkapnya, lihat [Panduan AWS CLI Pengguna](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html). 
+ Bucket S3 dibuat sama Wilayah AWS seperti AWS IoT Greengrass. Untuk selengkapnya, lihat [Membuat dan mengonfigurasi bucket S3](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/create-configure-bucket.html) di *Panduan Pengguna Layanan Penyimpanan Sederhana Amazon*. 
**catatan**  
 Saat ini, SSE KMS yang diaktifkan bucket tidak didukung. 

## Langkah 1: Buat dan unggah file input deployment massal
<a name="bulk-deploy-cli-create-input-file"></a>

 Dalam langkah ini, Anda membuat file input deployment dan mengunggah ke bucket Amazon S3 Anda. File ini adalah file JSON serial yang dibatasi garis yang berisi informasi tentang setiap grup dalam penyebaran massal Anda. AWS IoT Greengrass menggunakan informasi ini untuk menyebarkan setiap grup atas nama Anda saat Anda menginisialisasi penyebaran grup massal. 

1.  Jalankan perintah berikut untuk mendapatkan `groupId` untuk setiap grup yang ingin Anda gunakan. Anda memasukkan `groupId` ke file input deployment massal Anda sehingga AWS IoT Greengrass dapat mengidentifikasi setiap usaha untuk di-deploy. 
**catatan**  
<a name="find-group-ids-console"></a>Anda juga dapat menemukan nilai-nilai ini di AWS IoT konsol. ID grup ditampilkan pada halaman **Pengaturan** grup. Versi grup IDs ditampilkan di tab **Deployment** grup.

   ```
   aws greengrass list-groups
   ```

    Tanggapan berisi informasi tentang setiap grup di AWS IoT Greengrass akun Anda: 

   ```
   {
     "Groups": [
       {
         "Name": "string",
         "Id": "string",
         "Arn": "string",
         "LastUpdatedTimestamp": "string",
         "CreationTimestamp": "string",
         "LatestVersion": "string",
         "LatestVersionArn": "string"
       }
     ],
     "NextToken": "string"
   }
   ```

    Jalankan perintah berikut untuk mendapatkan `groupVersionId` dari setiap grup yang ingin Anda men-deploy. 

   ```
   list-group-versions --group-id groupId
   ```

    Respons berisi informasi tentang semua versi dalam grup. Buat catatan tentang `Version` nilai untuk versi grup yang ingin Anda gunakan. 

   ```
   {
     "Versions": [
       {
         "Arn": "string",
         "Id": "string",
         "Version": "string",
         "CreationTimestamp": "string"
       }
     ],
     "NextToken": "string"
   }
   ```

1.  Di terminal komputer atau editor pilihan Anda, buat file*MyBulkDeploymentInputFile*, dari contoh berikut. File ini berisi informasi tentang setiap AWS IoT Greengrass grup yang akan disertakan dalam penyebaran massal. Meskipun contoh ini mendefinisikan beberapa grup, untuk tutorial ini, file Anda dapat berisi hanya satu. 
**catatan**  
 Ukuran file ini harus kurang dari 100 MB. 

   ```
   {"GroupId":"groupId1", "GroupVersionId":"groupVersionId1", "DeploymentType":"NewDeployment"}
   {"GroupId":"groupId2", "GroupVersionId":"groupVersionId2", "DeploymentType":"NewDeployment"}
   {"GroupId":"groupId3", "GroupVersionId":"groupVersionId3", "DeploymentType":"NewDeployment"}
   ...
   ```

    Setiap catatan (atau baris) berisi objek grup. Setiap objek grup berisi yang sesuai `GroupId` dan `GroupVersionId` dan sebuah `DeploymentType`. Saat ini, hanya AWS IoT Greengrass mendukung jenis penyebaran `NewDeployment` massal. 

    Simpan dan tutup file Anda. Buat catatan tentang lokasi file. 

1.  Gunakan perintah berikut di terminal Anda untuk mengunggah file input Anda ke bucket Amazon S3 Anda. Ganti path file dengan lokasi dan nama file Anda. Untuk informasi, lihat [Menambahkan objek ke bucket](https://docs.aws.amazon.com/AmazonS3/latest/gsg/PuttingAnObjectInABucket.html). 

   ```
   aws s3 cp path/MyBulkDeploymentInputFile s3://amzn-s3-demo-bucket/
   ```

## Langkah 2: Buat dan konfigurasi peran eksekusi IAM
<a name="bulk-deploy-cli-create-role"></a>

 Dalam langkah ini, Anda menggunakan konsol IAM untuk membuat peran eksekusi mandiri. Anda kemudian membangun hubungan kepercayaan antara peran dan AWS IoT Greengrass dan memastikan bahwa pengguna IAM Anda memiliki `PassRole` hak istimewa untuk peran eksekusi Anda. Hal ini memungkinkan AWS IoT Greengrass untuk mengambil peran eksekusi Anda dan membuat penerapan atas nama Anda. 

1.  Gunakan kebijakan berikut untuk membuat peran eksekusi. Dokumen kebijakan ini mengizinkan AWS IoT Greengrass untuk mengakses file input deployment massal Anda ketika membuat setiap deployment atas nama Anda. 

    Untuk informasi lebih lanjut tentang membuat IAM role dan mendelegasikan izin, lihat [Membuat IAM role](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create.html). 

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "VisualEditor0",
               "Effect": "Allow",
               "Action": "greengrass:CreateDeployment",
               "Resource": [
               "arn:aws:greengrass:us-east-1:123456789012:/greengrass/groups/groupId1",
       "arn:aws:greengrass:us-east-1:123456789012:/greengrass/groups/groupId2",
       "arn:aws:greengrass:us-east-1:123456789012:/greengrass/groups/groupId3"
               ]
           }
       ]
   }
   ```

------
**catatan**  
 Kebijakan ini harus memiliki sumber daya untuk setiap grup atau grup versi dalam file input deployment massal untuk di-deploy oleh AWS IoT Greengrass. Untuk mengizinkan akses ke semua grup, untuk `Resource`, tentukan tanda bintang:   

   ```
   "Resource": ["*"]
   ```

1.  Modifikasi hubungan kepercayaan untuk peran eksekusi Anda untuk menyertakan AWS IoT Greengrass. Ini mengizinkan AWS IoT Greengrass untuk menggunakan peran eksekusi Anda dan izin yang melekat padanya. Untuk informasi, lihat [Mengedit hubungan kepercayaan untuk peran yang ada](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/edit_trust.html). 

   Kami menyarankan Anda juga menyertakan `aws:SourceArn` dan kunci konteks kondisi `aws:SourceAccount` global dalam kebijakan kepercayaan Anda untuk membantu mencegah masalah keamanan *wakil yang membingungkan*. Kunci konteks kondisi membatasi akses untuk mengizinkan hanya permintaan yang berasal dari akun tertentu dan ruang kerja Greengrass. Untuk informasi lebih lanjut tentang masalah wakil yang membingungkan, lihat[Pencegahan "confused deputy" lintas layanan](cross-service-confused-deputy-prevention.md).

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "",
         "Effect": "Allow",
         "Principal": {
           "Service": "greengrass.amazonaws.com"
         },
         "Action": "sts:AssumeRole",
         "Condition": {
           "StringEquals": {
           "aws:SourceAccount": "123456789012"
           },
           "ArnLike": {
             "aws:SourceArn": "arn:aws:greengrass:us-east-1:123456789012:*"
           }
         }
       }
     ]
   }
   ```

------

1.  Berikan IAM `PassRole` izin untuk peran eksekusi ke pengguna IAM Anda. Pengguna IAM ini adalah salah satu yang digunakan untuk memulai deployment massal. `PassRole` mengizinkan pengguna IAM Anda untuk meneruskan peran eksekusi Anda ke AWS IoT Greengrass untuk digunakan. Untuk informasi selengkapnya, lihat [Memberikan izin pengguna untuk meneruskan peran AWS ke layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html). 

    Gunakan contoh berikut untuk memperbarui kebijakan IAM yang dilampirkan pada peran eksekusi Anda. Memodifikasi contoh ini, jika perlu. 

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "Stmt1508193814000",
               "Effect": "Allow",
               "Action": [
                   "iam:PassRole"
               ],
               "Resource": [
                   "arn:aws:iam::123456789012:user/executionRoleArn"
               ],
               "Condition": {
                   "StringEquals": {
                       "iam:PassedToService": "greengrass.amazonaws.com"
                   }
               }
           }
       ]
   }
   ```

------

## Langkah 3: Izinkan akses peran eksekusi Anda ke Bucket S3
<a name="bulk-deploy-cli-modify-bucket"></a>

 Untuk memulai deployment massal Anda, peran eksekusi Anda harus dapat membaca file input deployment massal Anda dari bucket Amazon S3 Anda. Lampirkan kebijakan contoh berikut untuk bucket Amazon S3 Anda sehingga `GetObject` izin dapat diakses ke peran eksekusi Anda. 

 Untuk informasi lebih lanjut, lihat [ Cara menambahkan kebijakan bucket S3?](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/add-bucket-policy.html) 

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "examplePolicy",
    "Statement": [
        {
            "Sid": "Stmt1535408982966",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "executionRoleArn"
                ]
            },
            "Action": "s3:GetObject",
            "Resource":
            "arn:aws:s3:::amzn-s3-demo-bucket/objectKey"
        }
    ]
}
```

------

 Anda dapat menggunakan perintah berikut di terminal Anda untuk memeriksa kebijakan bucket: 

```
aws s3api get-bucket-policy --bucket amzn-s3-demo-bucket
```

**catatan**  
 Anda dapat langsung memmodifikasi peran eksekusi Anda untuk memberikan izin ke bucket Amazon S3 `GetObject` sebagai gantinya. Untuk melakukannya, lampirkan kebijakan berikut untuk peran eksekusi Anda.   

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/objectKey"
        }
    ]
}
```

## Langkah 4: Men-deploy grup
<a name="bulk-deploy-cli-start-bulk-deployments"></a>

 Dalam langkah ini, Anda memulai operasi deployment massal untuk semua versi grup yang dikonfigurasi dalam file input deployment massal Anda. Tindakan deployment untuk setiap versi grup Anda adalah jenis `NewDeploymentType`. 

**catatan**  
 Anda tidak dapat memanggil **StartBulkDeployment** sementara deployment massal lain dari akun yang sama masih berjalan. Permintaan ditolak. 

1.  Gunakan perintah berikut untuk memulai deployment massal. 

    Kami merekomendasikan Anda menyertakan `X-Amzn-Client-Token` token di setiap **StartBulkDeployment** permintaan. Permintaan ini idempoten sehubungan dengan token dan parameter permintaan. Token ini dapat berupa string yang unik dan sensitif hingga 64 karakter ASCII. 

   ```
   aws greengrass start-bulk-deployment --cli-input-json "{
             "InputFileUri":"URI of file in S3 bucket", 
             "ExecutionRoleArn":"ARN of execution role",
             "AmznClientToken":"your Amazon client token"
             }"
   ```

    Perintah harus menghasilkan kode status sukses `200`, bersama dengan respon berikut: 

   ```
   {
     "bulkDeploymentId": UUID
   }
   ```

    Membuat catatan ID deployment massal. Hal ini dapat digunakan untuk memeriksa status deployment massal Anda. 
**catatan**  
Meskipun operasi penyebaran massal saat ini tidak didukung, Anda dapat membuat aturan EventBridge peristiwa Amazon untuk mendapatkan pemberitahuan tentang perubahan status penerapan untuk grup individual. Untuk informasi selengkapnya, lihat [Dapatkan notifikasi deployment](deployment-notifications.md).

1.  Gunakan perintah berikut untuk memeriksa status deployment massal Anda. 

   ```
   aws greengrass get-bulk-deployment-status --bulk-deployment-id 1234567
   ```

    Perintah tersebut seharusnya mengembalikan kode status sukses dari `200` selain muatan JSON informasi: 

   ```
    {
     "BulkDeploymentStatus": Running,
     "Statistics": {
        "RecordsProcessed": integer,
        "InvalidInputRecords": integer,
        "RetryAttempts": integer
     },
     "CreatedAt": "string",
     "ErrorMessage": "string",
     "ErrorDetails": [
       {
         "DetailedErrorCode": "string",
         "DetailedErrorMessage": "string"
       }
     ]
   }
   ```

    `BulkDeploymentStatus` Berisi status eksekusi massal saat ini. Eksekusi dapat memiliki satu dari enam status yang berbeda: 
   + `Initializing`. Permintaan deployment massal telah diterima, dan eksekusi sedang mempersiapkan untuk mulai.
   + `Running`. Eksekusi deployment massal telah dimulai.
   + `Completed`. Eksekusi deployment massal telah selesai memproses semua catatan.
   + `Stopping`. Eksekusi deployment massal telah menerima perintah untuk berhenti dan akan mengakhiri segera. Anda tidak dapat memulai deployment massal baru sementara deployment sebelumnya di `Stopping` keadaan.
   + `Stopped`. Eksekusi deployment massal telah secara manual berhenti.
   + `Failed`. Eksekusi deployment massal mengalami kesalahan dan dihentikan. Anda dapat menemukan rincian kesalahan dalam `ErrorDetails` bidang.

    Muatan JSON juga mencakup informasi statistik tentang kemajuan deployment massal. Anda dapat menggunakan informasi ini untuk menentukan berapa banyak grup telah diproses dan berapa banyak telah gagal. Informasi statistik meliputi: 
   +  `RecordsProcessed`: Jumlah grup catatan yang dicoba. 
   +  `InvalidInputRecords`: Jumlah total catatan yang mengembalikan kesalahan yang tidak dapat dicoba lagi. Sebagai contoh, hal ini dapat terjadi jika catatan grup dari file input menggunakan format yang tidak valid atau menentukan versi grup yang tidak ada, atau jika eksekusi tidak memberikan izin untuk deployment versi grup atau grup. 
   +  `RetryAttempts`: Jumlah upaya deployment yang mengembalikan kesalahan yang dapat dicoba lagi. Sebagai contoh, coba lagi dipicu jika upaya untuk men-deploy grup mengembalikan kesalahan perlambatan. Deployment grup dapat dicoba ulang hingga lima kali. 

    Dalam kasus kegagalan eksekusi deployment massal, muatan ini juga mencakup `ErrorDetails` bagian yang dapat digunakan untuk pemecahan masalah. Ini berisi informasi tentang penyebab kegagalan eksekusi. 

    Anda dapat secara berkala memeriksa status deployment massal untuk mengkonfirmasi bahwa kemajuan seperti yang diharapkan. Setelah deployment selesai, `RecordsProcessed` harus sama dengan jumlah grup deployment dalam file input deployment massal Anda. Hal ini menunjukkan bahwa setiap catatan telah diproses. 

## Langkah 5: Uji deployment
<a name="bulk-deploy-cli-test"></a>

 Gunakan **ListBulkDeployments** perintah untuk menemukan ID deployment massal Anda. 

```
aws greengrass list-bulk-deployments
```

 Perintah ini akan menampilkan daftar semua deployment massal dari sebagian besar hingga paling tidak terbaru, termasuk `BulkDeploymentId`. 

```
{
  "BulkDeployments": [
    {
      "BulkDeploymentId": 1234567,
      "BulkDeploymentArn": "string",
      "CreatedAt": "string"
    }
  ],
  "NextToken": "string"
}
```

 Sekarang panggilan **ListBulkDeploymentDetailedReports** perintah untuk mengumpulkan informasi rinci tentang setiap deployment. 

```
aws greengrass list-bulk-deployment-detailed-reports --bulk-deployment-id 1234567 
```

 Perintah tersebut seharusnya mengembalikan kode status sukses dari `200` bersama dengan muatan JSON informasi: 

```
{ 
  "BulkDeploymentResults": [
    {
      "DeploymentId": "string",
      "GroupVersionedArn": "string",
      "CreatedAt": "string",
      "DeploymentStatus": "string",
      "ErrorMessage": "string",
      "ErrorDetails": [
        {
          "DetailedErrorCode": "string",
          "DetailedErrorMessage": "string"
        }
      ]
    }
  ],
  "NextToken": "string"
}
```

 Muatan ini biasanya berisi daftar paginasi dari setiap deployment dan status deployment dari yang terbaru hingga yang terbaru. Hal ini juga berisi informasi lebih lanjut dalam hal kegagalan eksekusi deployment massal. Sekali lagi, jumlah total deployment terdaftar harus sama dengan jumlah grup yang Anda identifikasi dalam file input deployment massal Anda. 

 Informasi yang dikembalikan dapat berubah sampai deployment berada dalam keadaan terminal (keberhasilan atau kegagalan). Anda dapat memanggil perintah ini secara berkala sampai saat itu. 

## Pemecahan masalah deployment massal
<a name="bulk-deploy-cli-troubleshooting"></a>

 Jika deployment massal tidak berhasil, Anda dapat mencoba langkah-langkah pemecahan masalah berikut ini. Jalankan perintah di terminal Anda. 

### Memecahkan masalah kesalahan file input
<a name="bulk-deploy-cli-troubleshooting-input-file-errors"></a>

 Deployment massal dapat gagal dalam hal kesalahan sintaks dalam file input deployment massal. Ini mengembalikan status deployment massal `Failed` dengan pesan kesalahan yang menunjukkan nomor baris kesalahan validasi pertama. Ada empat kemungkinan kesalahan: 
+ 

  ```
  InvalidInputFile: Missing GroupId at line number: line number
  ```

   Kesalahan ini mengindikasikan bahwa baris file input yang diberikan tidak dapat mendaftarkan parameter yang ditentukan. Parameter yang hilang mungkin adalah `GroupId` dan `GroupVersionId`. 
+ 

  ```
  InvalidInputFile: Invalid deployment type at line number : line number. Only valid type is 'NewDeployment'.
  ```

   Kesalahan ini mengindikasikan bahwa baris file input yang diberikan mencantumkan jenis deployment yang tidak valid. Pada saat ini, satu-satunya jenis deployment yang didukung adalah `NewDeployment`. 
+ 

  ```
  Line %s is too long in S3 File. Valid line is less than 256 chars.
  ```

   Kesalahan ini menunjukkan bahwa baris file input yang diberikan terlalu panjang dan harus dipersingkat. 
+ 

  ```
  Failed to parse input file at line number: line number
  ```

   Kesalahan ini menunjukkan bahwa baris file input yang diberikan tidak dianggap json yang valid. 

### Periksa deployment massal bersamaan
<a name="bulk-deploy-cli-troubleshooting-concurrent-bulk-deployments"></a>

 Anda tidak dapat memulai deployment massal baru sementara yang lain masih berjalan atau dalam keadaan non-terminal. Ini dapat mengakibatkan `Concurrent Deployment Error`. Anda dapat menggunakan **ListBulkDeployments** perintah untuk memverifikasi bahwa deployment massal tidak sedang berjalan. Perintah ini mencantumkan deployment massal Anda dari yang terbaru hingga yang terbaru. 

```
{
  "BulkDeployments": [
    {
      "BulkDeploymentId": BulkDeploymentId,
      "BulkDeploymentArn": "string",
      "CreatedAt": "string"
    }
  ],
  "NextToken": "string"
}
```

 Gunakan `BulkDeploymentId` deployment massal terdaftar pertama untuk menjalankan **GetBulkDeploymentStatus** perintah. Jika penggunaan massal terbaru Anda dalam keadaan berjalan (`Initializing` atau `Running`), gunakan perintah berikut untuk menghentikan deployment massal. 

```
aws greengrass stop-bulk-deployment --bulk-deployment-id BulkDeploymentId
```

 Tindakan ini menghasilkan status `Stopping` sampai deployment adalah `Stopped`. Setelah deployment telah mencapai `Stopped` status, Anda dapat memulai deployment massal baru. 

### Memeriksa ErrorDetails
<a name="bulk-deploy-cli-troubleshooting-check-error-details"></a>

 Jalankan `GetBulkDeploymentStatus` perintah untuk mengembalikan muatan JSON yang berisi informasi tentang kegagalan eksekusi deployment massal. 

```
  "Message": "string",
  "ErrorDetails": [
    {
      "DetailedErrorCode": "string",
      "DetailedErrorMessage": "string"
    }
  ]
```

 Ketika keluar dengan kesalahan, `ErrorDetails` muatan JSON yang dikembalikan oleh panggilan ini berisi informasi lebih lanjut tentang kegagalan eksekusi deployment massal. Kode status kesalahan dalam `400` seri, sebagai contoh, menunjukkan kesalahan input, baik dalam parameter input atau dependensi pemanggil. 

### Periksa log AWS IoT Greengrass inti
<a name="bulk-deploy-cli-troubleshooting-check-core-log"></a>

 Anda dapat memecahkan masalah dengan melihat log AWS IoT Greengrass inti. Gunakan perintah berikut untuk melihat `runtime.log`: 

```
cd /greengrass/ggc/var/log
sudo cat system/runtime.log | more
```

Untuk informasi selengkapnya tentang AWS IoT Greengrass pencatatan, lihat[Pemantauan dengan AWS IoT Greengrass log](greengrass-logs-overview.md). 

## Lihat juga
<a name="bulk-deploy-cli-see-also"></a>

Untuk informasi lebih lanjut, lihat sumber daya berikut:
+ [Menyebarkan AWS IoT Greengrass grup ke inti AWS IoT Greengrass](deployments.md)
+ [Perintah API Amazon S3](https://docs.aws.amazon.com/cli/latest/reference/s3api) dalam *AWS CLI Referensi Perintah*
+ <a name="see-also-gg-cli"></a>[AWS IoT Greengrass perintah](https://docs.aws.amazon.com/cli/latest/reference/greengrass/index.html) dalam *Referensi AWS CLI Perintah*