

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

# Pesan peristiwa
<a name="iot-events"></a>

Bagian ini berisi informasi tentang pesan yang diterbitkan oleh AWS IoT ketika sesuatu atau pekerjaan diperbarui atau diubah. Untuk informasi tentang AWS IoT Events layanan yang memungkinkan Anda membuat detektor untuk memantau perangkat Anda untuk kegagalan atau perubahan dalam operasi, dan untuk memicu tindakan ketika terjadi, lihat [AWS IoT Events](https://aws.amazon.com/iot-events).

## Bagaimana pesan acara dihasilkan
<a name="iot-events-how"></a>

AWS IoT menerbitkan pesan acara ketika peristiwa tertentu terjadi. Misalnya, peristiwa dihasilkan oleh registri ketika hal-hal ditambahkan, diperbarui, atau dihapus. Setiap peristiwa menyebabkan satu pesan acara dikirim. Pesan acara dipublikasikan melalui MQTT dengan muatan JSON. Isi muatan tergantung pada jenis acara.

**catatan**  
Pesan acara dijamin akan dipublikasikan satu kali. Dimungkinkan bagi mereka untuk diterbitkan lebih dari sekali. Urutan pesan acara tidak dijamin.

### Kebijakan untuk menerima pesan acara
<a name="iot-events-policy"></a>

Untuk menerima pesan acara, perangkat Anda harus menggunakan kebijakan yang sesuai yang memungkinkannya terhubung ke gateway AWS IoT perangkat dan berlangganan topik acara MQTT. Anda juga harus berlangganan filter topik yang sesuai.

Berikut ini adalah contoh kebijakan yang diperlukan untuk menerima peristiwa siklus hidup:

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iot:Subscribe",
                "iot:Receive"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:/$aws/events/*"
            ]
        }
    ]
}
```

## Aktifkan acara untuk AWS IoT
<a name="iot-events-enable"></a>

Sebelum pelanggan topik yang dicadangkan dapat menerima pesan, Anda harus mengaktifkan pesan acara dari Konsol Manajemen AWS atau dengan menggunakan API atau CLI. Untuk informasi tentang pesan peristiwa yang dikelola oleh berbagai opsi, lihat [Tabel setelan konfigurasi AWS IoT acara](#iot-events-settings-table).
+ Untuk mengaktifkan pesan peristiwa, buka tab [Pengaturan](https://console.aws.amazon.com//iot/home#/settings) AWS IoT konsol dan kemudian, di bagian **Pesan berbasis peristiwa**, pilih **Kelola** acara. Anda dapat menentukan acara yang ingin Anda kelola.
+ Untuk mengontrol jenis acara mana yang diterbitkan dengan menggunakan API atau CLI, panggil [UpdateEventConfigurations](https://docs.aws.amazon.com/iot/latest/apireference/API_UpdateEventConfigurations.html)API atau gunakan perintah CLI**update-event-configurations**. Contoh:

  ```
  aws iot update-event-configurations --event-configurations "{\"THING\":{\"Enabled\": true}}"
  ```

**catatan**  
Semua tanda kutip (“) diloloskan dengan garis miring terbalik (\$1).

Anda bisa mendapatkan konfigurasi acara saat ini dengan memanggil [DescribeEventConfigurations](https://docs.aws.amazon.com/iot/latest/apireference/API_DescribeEventConfigurations.html)API atau dengan menggunakan perintah **describe-event-configurations** CLI. Misalnya:.

```
aws iot describe-event-configurations
```<a name="iot-events-settings-table"></a>

**Tabel pengaturan konfigurasi AWS IoT acara**


|  Kategori acara  (AWS IoT Konsol: Pengaturan: Pesan berbasis acara)  |  `eventConfigurations`nilai kunci (AWS CLI/API)  |    Topik pesan acara  | 
| --- | --- | --- | 
|  *(Hanya dapat dikonfigurasi dengan menggunakan AWS CLI/API)*  |  `CA_CERTIFICATE`  |  `$aws/events/certificates/registered/caCertificateId`  | 
|  *(Hanya dapat dikonfigurasi dengan menggunakan AWS CLI/API)*  |  `CERTIFICATE`  |  `$aws/events/presence/connected/clientId`  | 
|  *(Hanya dapat dikonfigurasi dengan menggunakan AWS CLI/API)*  |  `CERTIFICATE`  |  `$aws/events/presence/disconnected/clientId`  | 
|  *(Hanya dapat dikonfigurasi dengan menggunakan AWS CLI/API)*  |  `CERTIFICATE`  |  `$aws/events/subscriptions/subscribed/clientId`  | 
|  *(Hanya dapat dikonfigurasi dengan menggunakan AWS CLI/API)*  |  `CERTIFICATE`  |  `$aws/events/subscriptions/unsubscribed/clientId`  | 
|  Job selesai, dibatalkan  |  `JOB`  |  `$aws/events/job/jobID/canceled`  | 
|  Job selesai, dibatalkan  |  `JOB`  |  `$aws/events/job/jobID/cancellation_in_progress`  | 
|  Job selesai, dibatalkan  |  `JOB`  |  `$aws/events/job/jobID/completed`  | 
|  Job selesai, dibatalkan  |  `JOB`  |  `$aws/events/job/jobID/deleted`  | 
|  Job selesai, dibatalkan  |  `JOB`  |  `$aws/events/job/jobID/deletion_in_progress`  | 
|  Eksekusi Job: sukses, gagal, ditolak, dibatalkan, dihapus  |  `JOB_EXECUTION`  |  `$aws/events/jobExecution/jobID/canceled`  | 
|  Eksekusi Job: sukses, gagal, ditolak, dibatalkan, dihapus  |  `JOB_EXECUTION`  |  `$aws/events/jobExecution/jobID/deleted`  | 
|  Eksekusi Job: sukses, gagal, ditolak, dibatalkan, dihapus  |  `JOB_EXECUTION`  |  `$aws/events/jobExecution/jobID/failed`  | 
|  Eksekusi Job: sukses, gagal, ditolak, dibatalkan, dihapus  |  `JOB_EXECUTION`  |  `$aws/events/jobExecution/jobID/rejected`  | 
|  Eksekusi Job: sukses, gagal, ditolak, dibatalkan, dihapus  |  `JOB_EXECUTION`  |  `$aws/events/jobExecution/jobID/removed`  | 
|  Eksekusi Job: sukses, gagal, ditolak, dibatalkan, dihapus  |  `JOB_EXECUTION`  |  `$aws/events/jobExecution/jobID/succeeded`  | 
|  Eksekusi Job: sukses, gagal, ditolak, dibatalkan, dihapus  |  `JOB_EXECUTION`  |  `$aws/events/jobExecution/jobID/timed_out`  | 
|  Hal: dibuat, diperbarui, dihapus  |  `THING`  |  `$aws/events/thing/thingName/created`  | 
|  Hal: dibuat, diperbarui, dihapus  |  `THING`  |  `$aws/events/thing/thingName/updated`  | 
|  Hal: dibuat, diperbarui, dihapus  |  `THING`  |  `$aws/events/thing/thingName/deleted`  | 
|  Grup hal: ditambahkan, dihapus  |  `THING_GROUP`  |  `$aws/events/thingGroup/thingGroupName/created`  | 
|  Grup hal: ditambahkan, dihapus  |  `THING_GROUP`  |  `$aws/events/thingGroup/thingGroupName/updated`  | 
|  Grup hal: ditambahkan, dihapus  |  `THING_GROUP`  |  `$aws/events/thingGroup/thingGroupName/deleted`  | 
|  Hirarki grup hal: ditambahkan, dihapus  |  `THING_GROUP_HIERARCHY`  |  `$aws/events/thingGroupHierarchy/thingGroup/parentThingGroupName/childThingGroup/childThingGroupName/added`  | 
|  Hirarki grup hal: ditambahkan, dihapus  |  `THING_GROUP_HIERARCHY`  |  `$aws/events/thingGroupHierarchy/thingGroup/parentThingGroupName/childThingGroup/childThingGroupName/removed`  | 
|  Keanggotaan grup hal: ditambahkan, dihapus  |  `THING_GROUP_MEMBERSHIP`  |  `$aws/events/thingGroupMembership/thingGroup/thingGroupName/thing/thingName/added`  | 
|  Keanggotaan grup hal: ditambahkan, dihapus  |  `THING_GROUP_MEMBERSHIP`  |  `$aws/events/thingGroupMembership/thingGroup/thingGroupName/thing/thingName/removed`  | 
|  Jenis hal: dibuat, diperbarui, dihapus  |  `THING_TYPE`  |  `$aws/events/thingType/thingTypeName/created`  | 
|  Jenis hal: dibuat, diperbarui, dihapus  |  `THING_TYPE`  |  `$aws/events/thingType/thingTypeName/updated`  | 
|  Jenis hal: dibuat, diperbarui, dihapus  |  `THING_TYPE`  |  `$aws/events/thingType/thingTypeName/deleted`  | 
|  Asosiasi jenis benda: ditambahkan, dihapus  |  `THING_TYPE_ASSOCIATION`  |  `$aws/events/thingTypeAssociation/thing/thingName/thingType/thingTypeName/added` `$aws/events/thingTypeAssociation/thing/thingName/thingType/thingTypeName/removed`  | 

# Peristiwa registri
<a name="registry-events"></a>

Registri dapat mempublikasikan pesan peristiwa ketika sesuatu, tipe benda, dan grup hal dibuat, diperbarui, atau dihapus. Peristiwa ini, bagaimanapun, tidak tersedia secara default. Untuk informasi tentang cara mengaktifkan acara ini, lihat[Aktifkan acara untuk AWS IoT](iot-events.md#iot-events-enable).

**Topics**
+ [Peristiwa hal](#registry-events-thing)
+ [Acara jenis hal](#registry-events-thingtype)
+ [Acara kelompok hal](#registry-events-thinggroup)

## Peristiwa hal
<a name="registry-events-thing"></a>

**Hal Created/Updated/Deleted**

Registri menerbitkan pesan peristiwa berikut ketika sesuatu dibuat, diperbarui, atau dihapus:
+ `$aws/events/thing/thingName/created`
+ `$aws/events/thing/thingName/updated`
+ `$aws/events/thing/thingName/deleted`

Pesan berisi contoh payload berikut:

```
{
    "eventType" : "THING_EVENT",
    "eventId" : "f5ae9b94-8b8e-4d8e-8c8f-b3266dd89853",
    "timestamp" : 1234567890123,
    "operation" : "CREATED|UPDATED|DELETED",
    "accountId" : "123456789012",
    "thingId" : "b604f69c-aa9a-4d4a-829e-c480e958a0b5",
    "thingName" : "MyThing",
    "versionNumber" : 1,
    "thingTypeName" : null,
    "attributes": {
                "attribute3": "value3",
                "attribute1": "value1",
                "attribute2": "value2"
    }
}
```

Muatan berisi atribut berikut:

eventType  
Setel ke “THING\$1EVENT”.

eventId  
ID peristiwa unik (string).

timestamp  
Stempel waktu UNIX saat peristiwa terjadi.

operation  
Operasi yang memicu acara tersebut. Nilai yang valid adalah:  
+ CREATED
+ DIPERBARUI
+ DELETED

accountId  
 Akun AWS ID Anda.

thingId  
ID dari benda yang sedang dibuat, diperbarui, atau dihapus.

thingName  
Nama benda yang sedang dibuat, diperbarui, atau dihapus.

versionNumber  
Versi benda yang sedang dibuat, diperbarui, atau dihapus. Nilai ini diatur ke 1 ketika sesuatu dibuat. Ini bertambah 1 setiap kali hal diperbarui.

thingTypeName  
Jenis benda yang terkait dengan hal itu, jika ada. Atau, `null`.

atribut  
Kumpulan pasangan nama-nilai yang terkait dengan benda tersebut.

## Acara jenis hal
<a name="registry-events-thingtype"></a>

**Topics**
+ [Tipe Benda Created/Updated/Deprecated/Undeprecated/Deleted](#registry-events-thingtype-crud)
+ [Tipe Hal yang Terkait atau Terputus dengan Sesuatu](#registry-events-thingtype-assoc)

### Tipe Benda Created/Updated/Deprecated/Undeprecated/Deleted
<a name="registry-events-thingtype-crud"></a>

Registri menerbitkan pesan peristiwa berikut ketika jenis sesuatu dibuat, diperbarui, tidak digunakan lagi, tidak digunakan lagi, atau dihapus:
+ `$aws/events/thingType/thingTypeName/created`
+ `$aws/events/thingType/thingTypeName/updated`
+ `$aws/events/thingType/thingTypeName/deleted`

Pesan berisi contoh payload berikut:

```
{
    "eventType" : "THING_TYPE_EVENT",
    "eventId" : "8827376c-4b05-49a3-9b3b-733729df7ed5",
    "timestamp" : 1234567890123,
    "operation" : "CREATED|UPDATED|DELETED",
    "accountId" : "123456789012",
    "thingTypeId" : "c530ae83-32aa-4592-94d3-da29879d1aac",
    "thingTypeName" : "MyThingType",
    "isDeprecated" : false|true,
    "deprecationDate" : null,
    "searchableAttributes" : [ "attribute1", "attribute2", "attribute3" ],
    "propagatingAttributes": [
        {
	    "userPropertyKey": "key",
	    "thingAttribute": "model"
        },
        {
	    "userPropertyKey": "key",
	    "connectionAttribute": "iot:ClientId"
        }
    ],
    "description" : "My thing type"
}
```

Muatan berisi atribut berikut:

eventType  
Setel ke “THING\$1TYPE\$1EVENT”.

eventId  
ID peristiwa unik (string).

timestamp  
Stempel waktu UNIX saat peristiwa terjadi.

operation  
Operasi yang memicu acara tersebut. Nilai yang valid adalah:  
+ CREATED
+ DIPERBARUI
+ DELETED

accountId  
 Akun AWS ID Anda.

thingTypeId  
ID dari jenis benda yang sedang dibuat, diperbarui, tidak digunakan lagi, atau dihapus.

thingTypeName  
Nama jenis benda yang sedang dibuat, diperbarui, tidak digunakan lagi, atau dihapus.

isDeprecated  
`true`jika tipe benda tidak digunakan lagi. Atau, `false`.

deprecationDate  
Stempel waktu UNIX untuk saat tipe benda tidak digunakan lagi.

searchableAttributes  
Kumpulan pasangan nama-nilai yang terkait dengan jenis benda yang dapat digunakan untuk pencarian.

Menyebarkan Atribut  
Daftar atribut propagating. Atribut propagating dapat berisi atribut thing, atribut koneksi, dan kunci properti pengguna. Untuk informasi selengkapnya, lihat [Menambahkan atribut propagasi untuk pengayaan pesan](https://docs.aws.amazon.com//iot/latest/developerguide/thing-types-propagating-attributes.html).

deskripsi  
Deskripsi jenis benda.

### Tipe Hal yang Terkait atau Terputus dengan Sesuatu
<a name="registry-events-thingtype-assoc"></a>

Registri menerbitkan pesan peristiwa berikut ketika jenis sesuatu dikaitkan atau dipisahkan dengan sesuatu.
+ `$aws/events/thingTypeAssociation/thing/thingName/thingType/typeName/added`
+ `$aws/events/thingTypeAssociation/thing/thingName/thingType/typeName/removed`

Berikut ini adalah contoh `added` payload. Muatan untuk `removed` pesan serupa.

```
{
    "eventId" : "87f8e095-531c-47b3-aab5-5171364d138d",
    "eventType" : "THING_TYPE_ASSOCIATION_EVENT",
    "operation" : "ADDED",
    "thingId" : "b604f69c-aa9a-4d4a-829e-c480e958a0b5",
    "thingName": "myThing",
    "thingTypeName" : "MyThingType",
    "timestamp" : 1234567890123,
}
```

Muatan berisi atribut berikut:

eventId  
ID peristiwa unik (string).

eventType  
Setel ke “THING\$1TYPE\$1ASSOCIATION\$1EVENT”.

operation  
Operasi yang memicu acara tersebut. Nilai yang valid adalah:  
+ DITAMBAHKAN
+ DIKELUARKAN

thingId  
ID dari benda yang asosiasi tipenya diubah.

thingName  
Nama benda yang asosiasi tipenya diubah.

thingTypeName  
Jenis benda yang terkait dengan, atau tidak lagi terkait dengan, benda itu.

timestamp  
Stempel waktu UNIX saat peristiwa terjadi.

## Acara kelompok hal
<a name="registry-events-thinggroup"></a>

**Topics**
+ [Kelompok Hal Created/Updated/Deleted](#registry-events-thinggroup-crud)
+ [Hal yang Ditambahkan atau Dihapus dari Thing Group](#registry-events-thinggroup-addremove)
+ [Thing Group Ditambahkan atau Dihapus dari Thing Group](#registry-events-thinggroup-adddelete)

### Kelompok Hal Created/Updated/Deleted
<a name="registry-events-thinggroup-crud"></a>

Registri menerbitkan pesan peristiwa berikut ketika grup sesuatu dibuat, diperbarui, atau dihapus.
+ `$aws/events/thingGroup/groupName/created`
+ `$aws/events/thingGroup/groupName/updated`
+ `$aws/events/thingGroup/groupName/deleted`

Berikut ini adalah contoh `updated` payload. Muatan untuk `created` dan `deleted` pesan serupa.

```
{
  "eventType": "THING_GROUP_EVENT",
  "eventId": "8b9ea8626aeaa1e42100f3f32b975899",
  "timestamp": 1603995417409,
  "operation": "UPDATED",
  "accountId": "571EXAMPLE833",
  "thingGroupId": "8757eec8-bb37-4cca-a6fa-403b003d139f",
  "thingGroupName": "Tg_level5",
  "versionNumber": 3,
  "parentGroupName": "Tg_level4",
  "parentGroupId": "5fce366a-7875-4c0e-870b-79d8d1dce119",
  "description": "New description for Tg_level5",
  "rootToParentThingGroups": [
    {
      "groupArn": "arn:aws:iot:us-west-2:571EXAMPLE833:thinggroup/TgTopLevel",
      "groupId": "36aa0482-f80d-4e13-9bff-1c0a75c055f6"
    },
    {
      "groupArn": "arn:aws:iot:us-west-2:571EXAMPLE833:thinggroup/Tg_level1",
      "groupId": "bc1643e1-5a85-4eac-b45a-92509cbe2a77"
    },
    {
      "groupArn": "arn:aws:iot:us-west-2:571EXAMPLE833:thinggroup/Tg_level2",
      "groupId": "0476f3d2-9beb-48bb-ae2c-ea8bd6458158"
    },
    {
      "groupArn": "arn:aws:iot:us-west-2:571EXAMPLE833:thinggroup/Tg_level3",
      "groupId": "1d9d4ffe-a6b0-48d6-9de6-2e54d1eae78f"
    },
    {
      "groupArn": "arn:aws:iot:us-west-2:571EXAMPLE833:thinggroup/Tg_level4",
      "groupId": "5fce366a-7875-4c0e-870b-79d8d1dce119"
    }
  ],
  "attributes": {
    "attribute1": "value1",
    "attribute3": "value3",
    "attribute2": "value2"
  },
  "dynamicGroupMappingId": null
}
```

Muatan berisi atribut berikut:

eventType  
Setel ke “THING\$1GROUP\$1EVENT”.

eventId  
ID peristiwa unik (string).

timestamp  
Stempel waktu UNIX saat peristiwa terjadi.

operation  
Operasi yang memicu acara tersebut. Nilai yang valid adalah:  
+ CREATED
+ DIPERBARUI
+ DELETED

accountId  
 Akun AWS ID Anda.

thingGroupId  
ID grup hal yang sedang dibuat, diperbarui, atau dihapus.

thingGroupName  
Nama grup benda yang sedang dibuat, diperbarui, atau dihapus.

versionNumber  
Versi dari grup benda. Nilai ini diatur ke 1 ketika grup benda dibuat. Ini bertambah 1 setiap kali grup hal diperbarui.

parentGroupName  
Nama kelompok hal induk, jika ada.

parentGroupId  
ID dari grup hal induk, jika ada.

deskripsi  
Deskripsi dari kelompok benda.

rootToParentThingGroups  
Sebuah array informasi tentang kelompok hal induk. Ada satu elemen untuk setiap grup hal induk, mulai dari grup root thing dan berlanjut ke induk grup benda. Setiap entri berisi kelompok benda `groupArn` dan`groupId`.

atribut  
Kumpulan pasangan nama-nilai yang terkait dengan grup benda.

### Hal yang Ditambahkan atau Dihapus dari Thing Group
<a name="registry-events-thinggroup-addremove"></a>

Registri menerbitkan pesan peristiwa berikut ketika sesuatu ditambahkan atau dihapus dari grup sesuatu.
+ `$aws/events/thingGroupMembership/thingGroup/thingGroupName/thing/thingName/added`
+ `$aws/events/thingGroupMembership/thingGroup/thingGroupName/thing/thingName/removed`

Pesan berisi contoh payload berikut:

```
{
    "eventType" : "THING_GROUP_MEMBERSHIP_EVENT",
    "eventId" : "d684bd5f-6f6e-48e1-950c-766ac7f02fd1",
    "timestamp" : 1234567890123,
    "operation" : "ADDED|REMOVED",
    "accountId" : "123456789012",
    "groupArn" : "arn:aws:iot:ap-northeast-2:123456789012:thinggroup/MyChildThingGroup",
    "groupId" : "06838589-373f-4312-b1f2-53f2192291c4",
    "thingArn" : "arn:aws:iot:ap-northeast-2:123456789012:thing/MyThing",
    "thingId" : "b604f69c-aa9a-4d4a-829e-c480e958a0b5",
    "membershipId" : "8505ebf8-4d32-4286-80e9-c23a4a16bbd8"
}
```

Muatan berisi atribut berikut:

eventType  
Setel ke “THING\$1GROUP\$1MEMBERSHIP\$1EVENT”.

eventId  
ID acara.

timestamp  
Stempel waktu UNIX untuk saat peristiwa terjadi.

operation  
`ADDED`ketika sesuatu ditambahkan ke grup sesuatu. `REMOVED`ketika sesuatu dihapus dari kelompok sesuatu.

accountId  
 Akun AWS ID Anda.

groupArn  
ARN dari kelompok benda.

groupId  
ID grup.

thingArn  
ARN dari hal yang ditambahkan atau dihapus dari kelompok benda.

thingId  
ID dari hal yang ditambahkan atau dihapus dari grup benda.

membershipId  
ID yang mewakili hubungan antara benda dan kelompok benda. Nilai ini dihasilkan ketika Anda menambahkan sesuatu ke grup benda.

### Thing Group Ditambahkan atau Dihapus dari Thing Group
<a name="registry-events-thinggroup-adddelete"></a>

Registri menerbitkan pesan peristiwa berikut ketika grup sesuatu ditambahkan atau dihapus dari grup hal lain.
+ `$aws/events/thingGroupHierarchy/thingGroup/parentThingGroupName/childThingGroup/childThingGroupName/added`
+ `$aws/events/thingGroupHierarchy/thingGroup/parentThingGroupName/childThingGroup/childThingGroupName/removed`

Pesan berisi contoh payload berikut:

```
{
    "eventType" : "THING_GROUP_HIERARCHY_EVENT",
    "eventId" : "264192c7-b573-46ef-ab7b-489fcd47da41",
    "timestamp" : 1234567890123,
    "operation" : "ADDED|REMOVED",
    "accountId" : "123456789012",
    "thingGroupId" : "8f82a106-6b1d-4331-8984-a84db5f6f8cb",
    "thingGroupName" : "MyRootThingGroup",
    "childGroupId" : "06838589-373f-4312-b1f2-53f2192291c4",
    "childGroupName" : "MyChildThingGroup"
}
```

Muatan berisi atribut berikut:

eventType  
Setel ke “THING\$1GROUP\$1HIERARCHY\$1EVENT”.

eventId  
ID acara.

timestamp  
Stempel waktu UNIX untuk saat peristiwa terjadi.

operation  
`ADDED`ketika sesuatu ditambahkan ke grup sesuatu. `REMOVED`ketika sesuatu dihapus dari kelompok sesuatu.

accountId  
 Akun AWS ID Anda.

thingGroupId  
ID dari grup hal induk.

thingGroupName  
Nama kelompok hal induk.

childGroupId  
ID grup benda anak.

childGroupName  
Nama kelompok benda anak.

# Peristiwa tugas
<a name="events-jobs"></a>

Layanan AWS IoT Pekerjaan memublikasikan topik yang dicadangkan pada protokol MQTT saat pekerjaan tertunda, diselesaikan, atau dibatalkan, dan saat perangkat melaporkan keberhasilan atau kegagalan saat menjalankan pekerjaan. Perangkat atau aplikasi manajemen dan pemantauan dapat melacak status pekerjaan dengan berlangganan topik ini.

**Cara mengaktifkan acara pekerjaan**  
Pesan respons dari layanan AWS IoT Jobs tidak melewati broker pesan dan mereka tidak dapat berlangganan oleh klien atau aturan lain. Untuk berlangganan pesan terkait aktivitas pekerjaan, gunakan dan topik. `notify` `notify-next` Untuk informasi tentang topik pekerjaan, lihat[Topik Job](reserved-topics.md#reserved-topics-job).

Untuk diberitahu tentang pembaruan lowongan kerja, aktifkan acara pekerjaan ini dengan menggunakan Konsol Manajemen AWS, atau dengan menggunakan API atau CLI. Untuk informasi selengkapnya, lihat [Aktifkan acara untuk AWS IoT](iot-events.md#iot-events-enable).

**Bagaimana acara pekerjaan bekerja**  
Karena perlu waktu untuk membatalkan atau menghapus pekerjaan, dua pesan dikirim untuk menunjukkan awal dan akhir permintaan. Misalnya, saat permintaan pembatalan dimulai, pesan dikirim ke `$aws/events/job/jobID/cancellation_in_progress` topik. Ketika permintaan pembatalan selesai, pesan dikirim ke `$aws/events/job/jobID/canceled` topik.

Proses serupa terjadi untuk permintaan penghapusan pekerjaan. Aplikasi manajemen dan pemantauan dapat berlangganan topik-topik ini untuk melacak status pekerjaan. Untuk informasi selengkapnya tentang menerbitkan dan berlangganan topik MQTT, lihat. [Protokol komunikasi perangkat](protocols.md)

**Jenis acara Job**  
Contoh berikut menunjukkan berbagai jenis acara pekerjaan:

**Job Completed/Canceled/Deleted**  
Layanan AWS IoT Pekerjaan memublikasikan pesan tentang topik MQTT saat pekerjaan selesai, dibatalkan, dihapus, atau saat pembatalan atau penghapusan sedang berlangsung:  
+ `$aws/events/job/jobID/completed`
+ `$aws/events/job/jobID/canceled`
+ `$aws/events/job/jobID/deleted`
+ `$aws/events/job/jobID/cancellation_in_progress`
+ `$aws/events/job/jobID/deletion_in_progress`
`completed`Pesan berisi contoh payload berikut:  

```
{
  "eventType": "JOB",
  "eventId": "7364ffd1-8b65-4824-85d5-6c14686c97c6",
  "timestamp": 1234567890,
  "operation": "completed",
  "jobId": "27450507-bf6f-4012-92af-bb8a1c8c4484",
  "status": "COMPLETED",
  "targetSelection": "SNAPSHOT|CONTINUOUS",
  "targets": [
    "arn:aws:iot:us-east-1:123456789012:thing/a39f6f91-70cf-4bd2-a381-9c66df1a80d0",
    "arn:aws:iot:us-east-1:123456789012:thinggroup/2fc4c0a4-6e45-4525-a238-0fe8d3dd21bb"
  ],
  "description": "My Job Description",
  "completedAt": 1234567890123,
  "createdAt": 1234567890123,
  "lastUpdatedAt": 1234567890123,
  "jobProcessDetails": {
    "numberOfCanceledThings": 0,
    "numberOfRejectedThings": 0,
    "numberOfFailedThings": 0,
    "numberOfRemovedThings": 0,
    "numberOfSucceededThings": 3
  }
}
```
`canceled`Pesan berisi contoh payload berikut.  

```
{
  "eventType": "JOB",
  "eventId": "568d2ade-2e9c-46e6-a115-18afa1286b06",
  "timestamp": 1234567890,
  "operation": "canceled",
  "jobId": "4d2a531a-da2e-47bb-8b9e-ff5adcd53ef0",
  "status": "CANCELED",
  "targetSelection": "SNAPSHOT|CONTINUOUS",
  "targets": [
    "arn:aws:iot:us-east-1:123456789012:thing/Thing0-947b9c0c-ff10-4a80-b4b3-cd33d0145a0f",
    "arn:aws:iot:us-east-1:123456789012:thinggroup/ThingGroup1-95c644d5-1621-41a6-9aa5-ad2de581d18f"
  ],
  "description": "My job description",
  "createdAt": 1234567890123,
  "lastUpdatedAt": 1234567890123
}
```
`deleted`Pesan berisi contoh payload berikut.  

```
{
      "eventType": "JOB",
      "eventId": "568d2ade-2e9c-46e6-a115-18afa1286b06",
      "timestamp": 1234567890,
      "operation": "deleted",
      "jobId": "4d2a531a-da2e-47bb-8b9e-ff5adcd53ef0",
      "status": "DELETED",
      "targetSelection": "SNAPSHOT|CONTINUOUS",
      "targets": [
        "arn:aws:iot:us-east-1:123456789012:thing/Thing0-947b9c0c-ff10-4a80-b4b3-cd33d0145a0f",
        "arn:aws:iot:us-east-1:123456789012:thinggroup/ThingGroup1-95c644d5-1621-41a6-9aa5-ad2de581d18f"
      ],
      "description": "My job description",
      "createdAt": 1234567890123,
      "lastUpdatedAt": 1234567890123,
      "comment": "Comment for this operation"
    }
```
`cancellation_in_progress`Pesan berisi contoh payload berikut:  

```
{
      "eventType": "JOB",
      "eventId": "568d2ade-2e9c-46e6-a115-18afa1286b06",
      "timestamp": 1234567890,
      "operation": "cancellation_in_progress",
      "jobId": "4d2a531a-da2e-47bb-8b9e-ff5adcd53ef0",
      "status": "CANCELLATION_IN_PROGRESS",
      "targetSelection": "SNAPSHOT|CONTINUOUS",
      "targets": [
        "arn:aws:iot:us-east-1:123456789012:thing/Thing0-947b9c0c-ff10-4a80-b4b3-cd33d0145a0f",
        "arn:aws:iot:us-east-1:123456789012:thinggroup/ThingGroup1-95c644d5-1621-41a6-9aa5-ad2de581d18f"
      ],
      "description": "My job description",
      "createdAt": 1234567890123,
      "lastUpdatedAt": 1234567890123,
      "comment": "Comment for this operation"
    }
```
`deletion_in_progress`Pesan berisi contoh payload berikut:  

```
{
      "eventType": "JOB",
      "eventId": "568d2ade-2e9c-46e6-a115-18afa1286b06",
      "timestamp": 1234567890,
      "operation": "deletion_in_progress",
      "jobId": "4d2a531a-da2e-47bb-8b9e-ff5adcd53ef0",
      "status": "DELETION_IN_PROGRESS",
      "targetSelection": "SNAPSHOT|CONTINUOUS",
      "targets": [
        "arn:aws:iot:us-east-1:123456789012:thing/Thing0-947b9c0c-ff10-4a80-b4b3-cd33d0145a0f",
        "arn:aws:iot:us-east-1:123456789012:thinggroup/ThingGroup1-95c644d5-1621-41a6-9aa5-ad2de581d18f"
      ],
      "description": "My job description",
      "createdAt": 1234567890123,
      "lastUpdatedAt": 1234567890123,
      "comment": "Comment for this operation"
    }
```

**Status Terminal Eksekusi Job**  
Layanan AWS IoT Jobs memublikasikan pesan saat perangkat memperbarui eksekusi pekerjaan ke status terminal:  
+ `$aws/events/jobExecution/jobID/succeeded`
+ `$aws/events/jobExecution/jobID/failed`
+ `$aws/events/jobExecution/jobID/rejected`
+ `$aws/events/jobExecution/jobID/canceled`
+ `$aws/events/jobExecution/jobID/timed_out`
+ `$aws/events/jobExecution/jobID/removed`
+ `$aws/events/jobExecution/jobID/deleted`
Pesan berisi contoh payload berikut:  

```
{
  "eventType": "JOB_EXECUTION",
  "eventId": "cca89fa5-8a7f-4ced-8c20-5e653afb3572",
  "timestamp": 1234567890,
  "operation": "succeeded|failed|rejected|canceled|removed|timed_out",
  "jobId": "154b39e5-60b0-48a4-9b73-f6f8dd032d27",
  "thingArn": "arn:aws:iot:us-east-1:123456789012:myThing/6d639fbc-8f85-4a90-924d-a2867f8366a7",
  "status": "SUCCEEDED|FAILED|REJECTED|CANCELED|REMOVED|TIMED_OUT",
  "statusDetails": {
    "key": "value"
  }
}
```

# Peristiwa eksekusi perintah
<a name="command-events"></a>

AWS IoT menerbitkan pesan acara ke topik MQTT saat eksekusi perintah mengubah status. Anda dapat menggunakan peristiwa ini untuk memantau kemajuan eksekusi perintah dan membangun aplikasi yang merespons perubahan status.

**Topik acara eksekusi perintah**  
Peristiwa eksekusi perintah dipublikasikan ke topik MQTT berikut:

```
$aws/events/commandExecution/commandId/status
```

Di mana:
+ `commandId`adalah pengenal perintah.
+ `status`adalah status eksekusi perintah. Nilai yang valid adalah:`CREATED`,`IN_PROGRESS`,`SUCCEEDED`,`FAILED`,`REJECTED`,`TIMED_OUT`.

Untuk menerima pemberitahuan untuk semua perintah dan semua status, berlangganan topik berikut menggunakan karakter wildcard:

```
$aws/events/commandExecution/+/#
```

**Pesan acara eksekusi perintah**  
Ketika status eksekusi perintah berubah, AWS IoT menerbitkan pesan peristiwa ke topik MQTT yang sesuai. Pesan berisi contoh payload berikut:

```
{
    "executionId": "2bd65c51-4cfd-49e4-9310-d5cbfdbc8554",
    "status": "FAILED",
    "statusReason": {
        "reasonCode": "DEVICE_TOO_BUSY",
        "reasonDescription": ""
    },
    "eventType": "COMMAND_EXECUTION",
    "commandArn": "arn:aws:iot:us-east-1:123456789012:command/0b9d9ddf-e873-43a9-8e2c-9fe004a90086",
    "targetArn": "arn:aws:iot:us-east-1:123456789012:thing/5006c3fc-de96-4def-8427-7eee36c6f2bd",
    "timestamp": 1717708862107
}
```

Payload berisi atribut berikut:

**ExecutionID**  
Sebuah identifier unik untuk eksekusi perintah (string).

**status**  
Status eksekusi perintah. Nilai yang valid adalah:`CREATED`,`IN_PROGRESS`,`SUCCEEDED`,`FAILED`,`REJECTED`,`TIMED_OUT`.

**StatusReason**  
Objek yang berisi informasi tambahan tentang status, jika tersedia. Berisi `reasonCode` dan `reasonDescription` bidang.

**EventType**  
Setel ke “COMMAND\$1EXECUTION”.

**Commandarn**  
Nama Sumber Daya Amazon (ARN) dari perintah.

**TargetArn**  
ARN perangkat target (benda atau klien) untuk eksekusi perintah.

**stempel waktu**  
Stempel waktu UNIX saat peristiwa terjadi.

# Peristiwa siklus hidup
<a name="life-cycle-events"></a>

AWS IoT dapat mempublikasikan peristiwa siklus hidup pada topik MQTT. Acara ini tersedia secara default dan tidak dapat dinonaktifkan.

**catatan**  
Pesan siklus hidup mungkin dikirim rusak. Anda mungkin menerima pesan duplikat.  
`thingName`hanya akan disertakan jika klien terhubung menggunakan fitur [hal eksklusif](exclusive-thing.md).

**Topics**
+ [Hubungkan/Putuskan acara](#connect-disconnect)
+ [Acara kegagalan percobaan Connect](#connect-authfailure-event)
+ [Acara Berlangganan/Berhenti Berlangganan](#subscribe-unsubscribe-events)

## Hubungkan/Putuskan acara
<a name="connect-disconnect"></a>

**catatan**  
Dengan pengindeksan armada Manajemen AWS IoT Perangkat, Anda dapat mencari sesuatu, menjalankan kueri agregat, dan membuat grup dinamis berdasarkan peristiwa sesuatu. Connect/Disconnect Untuk informasi selengkapnya, lihat [Pengindeksan armada](https://docs.aws.amazon.com//iot/latest/developerguide/iot-indexing.html).

AWS IoT menerbitkan pesan ke topik MQTT berikut saat klien menghubungkan atau memutuskan sambungan:
+ `$aws/events/presence/connected/clientId`— Klien yang terhubung ke broker pesan.
+ `$aws/events/presence/disconnected/clientId`— Klien terputus dari broker pesan.

Berikut ini adalah daftar elemen JSON yang terkandung dalam connection/disconnection pesan yang dipublikasikan ke `$aws/events/presence/connected/clientId` topik.

**clientId**  
ID klien dari klien yang menghubungkan atau memutuskan sambungan.  
Klien IDs yang berisi \$1 atau \$1 tidak menerima peristiwa siklus hidup.

**thingName**  
Nama benda IoT Anda. `thingName`hanya akan disertakan jika klien terhubung menggunakan fitur [hal eksklusif](exclusive-thing.md).

**clientInitiatedDisconnect**  
Benar jika klien memulai pemutusan. Kalau tidak, salah. Hanya ditemukan di pesan putuskan sambungan.

**disconnectReason**  
Alasan mengapa klien terputus. Hanya ditemukan di pesan putuskan sambungan. Tabel berikut berisi nilai yang valid dan apakah broker akan mengirim [pesan Last Will and Testament (LWT)](mqtt.md#mqtt-lwt) ketika pemutusan terjadi.      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/life-cycle-events.html)
1 Jika perangkat memiliki koneksi aktif sebelum menerima kesalahan ini.  
2 Untuk mencegah pesan Last Will and Testament (LWT), atur `preventWillMessage=true` untuk mengganti perilaku pengiriman LWT default `DeleteConnection` API.

**eventType**  
Jenis peristiwa. Nilai-nilai yang valid adalah `connected` atau `disconnected`. 

**ipAddress**  
Alamat IP dari klien penghubung. Ini bisa dalam IPv4 atau IPv6 format. Ditemukan dalam pesan koneksi saja. 

**principalIdentifier**  
Kredensi yang digunakan untuk mengautentikasi. Untuk sertifikat otentikasi timbal balik TLS, ini adalah ID sertifikat. Untuk koneksi lain, ini adalah kredensi IAM.

**sessionIdentifier**  
Pengidentifikasi unik secara global AWS IoT yang ada selama masa sesi.

**timestamp**  
Perkiraan kapan peristiwa itu terjadi.

**versionNumber**  
Nomor versi untuk acara siklus hidup. Ini adalah nilai integer panjang yang meningkat secara monoton untuk setiap koneksi ID klien. Nomor versi dapat digunakan oleh pelanggan untuk menyimpulkan urutan peristiwa siklus hidup.  
Pesan sambungkan dan putuskan sambungan untuk koneksi klien memiliki nomor versi yang sama.  
Nomor versi mungkin melewati nilai dan tidak dijamin akan meningkat secara konsisten sebesar 1 untuk setiap acara.  
Jika klien tidak terhubung selama kurang lebih satu jam, nomor versi diatur ulang ke 0. Untuk sesi persisten, nomor versi disetel ulang ke 0 setelah klien terputus lebih lama dari yang dikonfigurasi time-to-live (TTL) untuk sesi persisten.

Pesan connect memiliki struktur berikut.

```
{
    "clientId": "186b5",
    "thingName": "exampleThing",
    "timestamp": 1573002230757,
    "eventType": "connected",
    "sessionIdentifier": "00000000-0000-0000-0000-000000000000",
    "principalIdentifier": "12345678901234567890123456789012",
    "ipAddress": "192.0.2.0",
    "versionNumber": 0
}
```

Pesan pemutusan memiliki struktur berikut.

```
{
    "clientId": "186b5",
    "thingName": "exampleThing",
    "timestamp": 1573002340451,
    "eventType": "disconnected",
    "sessionIdentifier": "00000000-0000-0000-0000-000000000000",
    "principalIdentifier": "12345678901234567890123456789012",
    "clientInitiatedDisconnect": true,
    "disconnectReason": "CLIENT_INITIATED_DISCONNECT",
    "versionNumber": 0
}
```

### Menangani pemutusan klien
<a name="reconnect"></a>

Praktik terbaik adalah selalu menerapkan status tunggu untuk peristiwa siklus hidup, termasuk pesan [Kehendak Terakhir dan Perjanjian (LWT](mqtt.md)). Ketika pesan pemutusan diterima, kode Anda harus menunggu jangka waktu tertentu dan memverifikasi perangkat masih offline sebelum mengambil tindakan. Salah satu cara untuk melakukannya adalah dengan menggunakan [SQS Delay Queues](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-delay-queues.html). Saat klien menerima LWT atau peristiwa siklus hidup, Anda dapat mengantrekan pesan (misalnya, selama 5 detik). Ketika pesan itu tersedia dan diproses (oleh Lambda atau layanan lain), Anda dapat terlebih dahulu memeriksa apakah perangkat masih offline sebelum mengambil tindakan lebih lanjut.

## Acara kegagalan percobaan Connect
<a name="connect-authfailure-event"></a>

AWS IoT menerbitkan pesan ke topik MQTT berikut ketika klien tidak berwenang untuk terhubung atau ketika surat wasiat dan wasiat terakhir dikonfigurasi dan klien tidak berwenang untuk mempublikasikan ke topik wasiat terakhir tersebut.

```
$aws/events/presence/connect_failed/clientId
```

Berikut ini adalah daftar elemen JSON yang terkandung dalam pesan otorisasi sambungkan yang dipublikasikan ke topik. `$aws/events/presence/connect_failed/clientId`

**clientId**  
ID klien klien yang mencoba dan gagal terhubung.  
Klien IDs yang berisi \$1 atau \$1 tidak menerima peristiwa siklus hidup.

**thingName**  
Nama benda IoT Anda. `thingName`hanya akan disertakan jika klien terhubung menggunakan fitur [hal eksklusif](exclusive-thing.md).

**timestamp**  
Perkiraan kapan peristiwa itu terjadi.

**eventType**  
Jenis peristiwa. Nilai yang valid adalah `connect_failed`.

**connectFailureReason**  
Alasan mengapa koneksi gagal. Nilai yang valid adalah `AUTHORIZATION_FAILED`.

**principalIdentifier**  
Kredensi yang digunakan untuk mengautentikasi. Untuk sertifikat otentikasi timbal balik TLS, ini adalah ID sertifikat. Untuk koneksi lain, ini adalah kredensi IAM.

**sessionIdentifier**  
Pengidentifikasi unik secara global AWS IoT yang ada selama masa sesi.

**ipAddress**  
Alamat IP dari klien penghubung. Ini bisa dalam IPv4 atau IPv6 format. Ditemukan dalam pesan koneksi saja.

Pesan kegagalan koneksi memiliki struktur berikut.

```
{
    "clientId": "186b5",
    "thingName": "exampleThing",
    "timestamp": 1460065214626,
    "eventType": "connect_failed",
    "connectFailureReason": "AUTHORIZATION_FAILED",
    "principalIdentifier": "12345678901234567890123456789012",
    "sessionIdentifier": "00000000-0000-0000-0000-000000000000",
    "ipAddress" : "192.0.2.0"
}
```

## Acara Berlangganan/Berhenti Berlangganan
<a name="subscribe-unsubscribe-events"></a>

AWS IoT menerbitkan pesan ke topik MQTT berikut ketika klien berlangganan atau berhenti berlangganan topik MQTT:

```
$aws/events/subscriptions/subscribed/clientId
```

 atau 

```
$aws/events/subscriptions/unsubscribed/clientId
```

Di `clientId` mana ID klien MQTT yang terhubung ke broker pesan. AWS IoT 

Pesan yang dipublikasikan untuk topik ini memiliki struktur sebagai berikut:

```
{
    "clientId": "186b5",
    "thingName": "exampleThing",
    "timestamp": 1460065214626,
    "eventType": "subscribed" | "unsubscribed",
    "sessionIdentifier": "00000000-0000-0000-0000-000000000000",
    "principalIdentifier": "12345678901234567890123456789012",
    "topics" : ["foo/bar","device/data","dog/cat"]
}
```

Berikut ini adalah daftar elemen JSON yang terkandung dalam pesan berlangganan dan berhenti berlangganan yang diterbitkan ke dan topik. `$aws/events/subscriptions/subscribed/clientId` `$aws/events/subscriptions/unsubscribed/clientId`

clientId  
ID klien dari klien berlangganan atau berhenti berlangganan.  
Klien IDs yang berisi \$1 atau \$1 tidak menerima peristiwa siklus hidup.

thingName  
Nama benda IoT Anda. `thingName`hanya akan disertakan jika klien terhubung menggunakan fitur [hal eksklusif](exclusive-thing.md).

eventType  
Jenis peristiwa. Nilai-nilai yang valid adalah `subscribed` atau `unsubscribed`. 

principalIdentifier  
Kredensi yang digunakan untuk mengautentikasi. Untuk sertifikat otentikasi timbal balik TLS, ini adalah ID sertifikat. Untuk koneksi lain, ini adalah kredensi IAM.

sessionIdentifier  
Pengidentifikasi unik secara global AWS IoT yang ada selama masa sesi.

timestamp  
Perkiraan kapan peristiwa itu terjadi.

topik  
Sebuah array dari topik MQTT yang klien telah berlangganan.

**catatan**  
Pesan siklus hidup mungkin dikirim rusak. Anda mungkin menerima pesan duplikat.