

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

# Contoh: Menggunakan perintah untuk mengontrol mode kemudi kendaraan (AWS CLI)
<a name="remote-command-tutorial"></a>

**penting**  
Akses ke FleetWise fitur AWS IoT tertentu saat ini terjaga keamanannya. Untuk informasi selengkapnya, lihat [AWS Ketersediaan wilayah dan fitur di AWS IoT FleetWise](fleetwise-regions.md).

Contoh berikut menunjukkan kepada Anda cara menggunakan fitur perintah menggunakan AWS CLI. Contoh ini menggunakan AWS IoT FleetWise kendaraan sebagai perangkat target untuk menunjukkan bagaimana Anda dapat mengirim perintah untuk mengontrol mode kemudi dari jarak jauh.

**Topics**
+ [Ikhtisar contoh mode kemudi kendaraan](#iot-remote-command-tutorial-overview)
+ [Prasyarat](#iot-remote-command-tutorial-prereq)
+ [Kebijakan IAM untuk menggunakan perintah jarak jauh](#remote-command-policy)
+ [Jalankan AWS IoT perintah (AWS CLI)](#iot-remote-command-tutorial-run)
+ [Membersihkan](#remote-command-tutorial-clean)

## Ikhtisar contoh mode kemudi kendaraan
<a name="iot-remote-command-tutorial-overview"></a>

Dalam contoh ini, Anda akan:

1. Buat sumber daya perintah untuk operasi menggunakan `create-command` AWS CLI untuk mengubah mode kemudi kendaraan.

1. Ambil informasi tentang perintah, seperti waktu ketika itu dibuat atau terakhir diperbarui menggunakan. `get-command` AWS CLI

1. Kirim perintah ke kendaraan menggunakan `start-command-execution` AWS CLI dengan mode kemudi sebagai parameter wajib, yang kemudian akan dieksekusi pada perangkat.

1. Dapatkan hasil eksekusi perintah menggunakan file `get-command-execution` AWS CLI. Anda dapat memeriksa kapan eksekusi selesai, dan mengambil detail tambahan seperti hasil eksekusi, dan waktu yang dibutuhkan untuk menyelesaikan eksekusi perintah.

1. Lakukan aktivitas pembersihan dengan menghapus perintah dan eksekusi perintah yang tidak lagi ingin Anda gunakan.

## Prasyarat
<a name="iot-remote-command-tutorial-prereq"></a>

Sebelum Anda menjalankan contoh ini:
+ Menyediakan AWS IoT FleetWise kendaraan Anda sebagai AWS IoT sesuatu dalam AWS IoT registri. Anda juga harus menambahkan sertifikat ke barang Anda dan mengaktifkannya, dan melampirkan kebijakan untuk barang Anda. Perangkat Anda kemudian dapat terhubung ke cloud dan menjalankan perintah. Untuk informasi selengkapnya, lihat [Menyediakan kendaraan](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/provision-vehicles.html).
+ Buat pengguna IAM dan kebijakan IAM yang memberi Anda izin untuk melakukan operasi API untuk menggunakan perintah, seperti yang ditunjukkan dalam. [Kebijakan IAM untuk menggunakan perintah jarak jauh](#remote-command-policy)

## Kebijakan IAM untuk menggunakan perintah jarak jauh
<a name="remote-command-policy"></a>

Tabel berikut menunjukkan contoh kebijakan IAM yang memberikan akses ke semua operasi API bidang kontrol dan bidang data untuk fitur perintah. Pengguna aplikasi akan memiliki izin untuk melakukan semua operasi API perintah jarak jauh, seperti yang ditunjukkan pada tabel.


**Operasi API**  

| Tindakan API | Bidang kontrol/data | Protokol | Deskripsi | Sumber daya | 
| --- | --- | --- | --- | --- | 
| CreateCommand | Bidang kontrol | HTTP | Membuat sumber daya perintah |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/iot-fleetwise/latest/developerguide/remote-command-tutorial.html)  | 
| GetCommand | Bidang kontrol | HTTP | Mengambil informasi tentang perintah |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/iot-fleetwise/latest/developerguide/remote-command-tutorial.html)  | 
| UpdateCommand | Bidang kontrol | HTTP | Memperbarui informasi tentang perintah atau untuk menghentikannya |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/iot-fleetwise/latest/developerguide/remote-command-tutorial.html)  | 
| ListCommands | Bidang kontrol | HTTP | Daftar perintah di akun Anda |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/iot-fleetwise/latest/developerguide/remote-command-tutorial.html)  | 
| DeleteCommand | Bidang kontrol | HTTP | Menghapus perintah |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/iot-fleetwise/latest/developerguide/remote-command-tutorial.html)  | 
| StartCommandExecution | Bidang data | HTTP | Mulai mengeksekusi perintah |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/iot-fleetwise/latest/developerguide/remote-command-tutorial.html)  | 
| UpdateCommandExecution | Bidang data | MQTT | Perbarui eksekusi perintah |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/iot-fleetwise/latest/developerguide/remote-command-tutorial.html)  | 
| GetCommandExecution | Bidang kontrol | HTTP | Mengambil informasi tentang eksekusi perintah |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/iot-fleetwise/latest/developerguide/remote-command-tutorial.html)  | 
| ListCommandExecutions | Bidang kontrol | HTTP | Daftar eksekusi perintah di akun Anda |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/iot-fleetwise/latest/developerguide/remote-command-tutorial.html)  | 
| DeleteCommandExecution | Bidang kontrol | HTTP | Menghapus eksekusi perintah |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/iot-fleetwise/latest/developerguide/remote-command-tutorial.html)  | 

Dalam contoh ini, ganti:
+ `us-east-1`dengan Anda Wilayah AWS, seperti`ap-south-1`.
+ `111122223333`dengan Akun AWS nomor Anda, seperti`57EXAMPLE833`.
+ `command-id`,`command-id1`, dan `command-id2` dengan pengidentifikasi perintah unik Anda, seperti `LockDoor` atau`TurnOffAC`.
+ `thing-name`dengan nama AWS IoT benda Anda, seperti`my_car`.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "iot:CreateCommand",
                "iot:GetCommand",
                "iot:ListCommands",
                "iot:UpdateCommand",
                "iot:DeleteCommand"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:iot:us-east-1:111122223333:command/command-id1",
                "arn:aws:iot:us-east-1:111122223333:command/command-id2"
            ]
        },
        {
            "Action": [
                "iot:GetCommandExecution",
                "iot:ListCommandExecutions",
                "iot:DeleteCommandExecution"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:iot:us-east-1:111122223333:command/command-id",
                "arn:aws:iot:us-east-1:111122223333:thing/thing-name"
            ]
        },
        {
            "Action": "iot:StartCommandExecution",
            "Effect": "Allow",
            "Resource": [
                "arn:aws:iot:us-east-1:111122223333:command/command-id",
                "arn:aws:iot:us-east-1:111122223333:thing/thing-name"
            ]
        }
    ]
}
```

------

## Jalankan AWS IoT perintah (AWS CLI)
<a name="iot-remote-command-tutorial-run"></a>

Berikut ini menunjukkan bagaimana Anda dapat menggunakan AWS CLI untuk melakukan operasi perintah dan mengubah mode kemudi kendaraan.

1. 

**Buat sumber daya perintah untuk operasi mode kemudi**

   Buat perintah yang ingin Anda kirim ke perangkat Anda menggunakan `create-command` CLI. Dalam contoh ini, tentukan:
   + `command-id`sebagai *`TurnOffSteeringMode`*
   + `role-arn`sebagai `"arn:aws:iam:accountId:role/FwCommandExecutionRole"` `role-arn` Harus disediakan, karena itu adalah peran IAM yang memberikan izin untuk membuat dan menjalankan perintah pada kendaraan Anda. Untuk informasi selengkapnya, lihat [Berikan AWS IoT Device Management izin untuk menghasilkan muatan untuk perintah dengan AWS IoT FleetWise](controlling-access.md#generate-command-payload).
   + `display-name`sebagai "*`Turn off steering mode`*”
   + `namespace`harus `AWS-IoT-FleetWise`
   + `mandatory-parameters`sebagai pasangan nama-nilai, dengan `name` sebagai "*\$1actuatorPath.Vehicle.Chassis.SteeringWheel.TurnOffSteeringMode*" dan defaultValue sebagai `{ "S": "true" }`
**catatan**  
Anda juga dapat membuat perintah tanpa menentukan parameter wajib apa pun. Anda kemudian harus menentukan parameter yang akan digunakan saat menjalankan perintah menggunakan `start-command-execution` CLI. Sebagai contoh, lihat [Skenario penggunaan perintah](remote-command-use-cases.md).
**penting**  
Saat menggunakan `AWS-IoT-FleetWise` namespace, Anda harus memastikan bahwa `Name` bidang yang ditentukan sebagai bagian dari `mandatory-parameters` penggunaan `$actuatorPath.` awalan, dan `Value` bidang harus menggunakan tipe data string.

   ```
   aws iot create-command \ 
       --command-id TurnOffSteeringMode \ 
       --role-arn "arn:aws:iam:accountId:role/FwCommandExecutionRole" \
       --display-name "Turn off steering mode" \ 
       --namespace AWS-IoT-FleetWise \
       --mandatory-parameters '[
         {
           "name": "$actuatorPath.Vehicle.Chassis.SteeringWheel.TurnOffSteeringMode",
           "defaultValue": { "S": "true" }
         }
       ]'
   ```

   Output berikut menunjukkan respon sampel dari CLI, di mana `ap-south-1` dan `123456789012` merupakan contoh dari Wilayah AWS dan Akun AWS ID.

   ```
   {
       "commandId": "TurnOffSteeringMode",
       "commandArn": "arn:aws:iot:ap-south-1:123456789012:command/TurnOffSteeringMode"
   }
   ```

   Untuk contoh tambahan tentang penggunaan perintah ini, lihat[Buat sumber daya perintah](create-manage-remote-command-cli.md#create-remote-command-cli).

1. 

**Ambil informasi tentang perintah**

   Jalankan perintah berikut untuk mengambil informasi tentang perintah, di mana `command-id` ID perintah dalam output `create-command` operasi dari atas.
**catatan**  
Jika Anda membuat lebih dari satu perintah, Anda dapat menggunakan `ListCommands` API untuk mencantumkan semua perintah di akun Anda, lalu menggunakan `GetCommand` API untuk mendapatkan informasi tambahan tentang perintah tertentu. Untuk informasi selengkapnya, lihat [Daftar perintah di akun Anda](create-manage-remote-command-cli.md#list-remote-command-cli).

   ```
   aws iot get-command --command-id TurnOffSteeringMode
   ```

   Menjalankan perintah ini menghasilkan respons berikut. Anda akan melihat waktu ketika perintah dibuat dan kapan terakhir diperbarui, parameter apa pun yang Anda tentukan, dan apakah perintah tersedia untuk dijalankan di perangkat.

   ```
   {
       "commandId": "TurnOffSteeringMode",
       "commandArn": "arn:aws:iot:ap-south-1:123456789012:command/TurnOffSteeringMode",
       "namespace": "AWS-IoT-FleetWise",
       "mandatoryParameters":[
           {
               "name": "$actuatorPath.Vehicle.Chassis.SteeringWheel.TurnOffSteeringMode",
               "defaultValue": {"S": "true" }
           }
       ],
       "createdAt": "2024-03-23T00:50:10.095000-07:00",
       "lastUpdatedAt": "2024-03-23T00:50:10.095000-07:00",
       "deprecated": false
   }
   ```

   Untuk contoh tambahan tentang penggunaan perintah ini, lihat[Mengambil informasi tentang perintah](create-manage-remote-command-cli.md#get-remote-command-cli).

1. 

**Mulai eksekusi perintah**

   Jalankan perintah berikut untuk mulai menjalankan perintah, di `command-arn` mana perintah ARN dalam output operasi dari `get-command` atas. `target-arn`Ini adalah ARN dari perangkat target tempat Anda menjalankan perintah, misalnya,. *`myVehicle`*

   Dalam contoh ini, karena Anda memberikan nilai default untuk parameter saat membuat perintah, `start-command-execution` CLI dapat menggunakan nilai-nilai ini saat menjalankan perintah. Anda juga dapat memilih untuk mengganti nilai default dengan menentukan nilai yang berbeda untuk parameter saat menggunakan CLI.

   ```
   aws iot-data start-command-execution \    
       --command-arn arn:aws:iot:ap-south-1:123456789012:command/TurnOffSteeringMode \
       --target-arn arn:aws:iot:ap-south-1:123456789012:thing/myVehicle
   ```

   Menjalankan perintah ini mengembalikan ID eksekusi perintah. Anda dapat menggunakan ID ini untuk menanyakan status eksekusi perintah, detail, dan riwayat eksekusi perintah.

   ```
   {
       "executionId": "07e4b780-7eca-4ffd-b772-b76358da5542"
   }
   ```

   Untuk contoh tambahan tentang penggunaan CLI, lihat. [Kirim perintah (AWS CLI)](send-monitor-remote-command-cli.md#send-remote-command-cli)

1. 

**Mengambil informasi tentang eksekusi perintah**

   Jalankan perintah berikut untuk mengambil informasi tentang perintah yang Anda jalankan pada perangkat target. Tentukan`execution-id`, yang Anda peroleh sebagai output `start-command-execution` operasi dari atas, dan`target-arn`, yang merupakan ARN perangkat yang Anda targetkan.
**catatan**  
Untuk mendapatkan informasi status terbaru, perangkat Anda harus telah mempublikasikan informasi status yang diperbarui ke topik respons cadangan MQTT untuk perintah menggunakan MQTT API. `UpdateCommandExecution` Untuk informasi selengkapnya, lihat [Perbarui hasil eksekusi perintah](send-monitor-remote-command-cli.md#update-remote-command-execution-cli).
Jika Anda memulai lebih dari satu eksekusi perintah, Anda dapat menggunakan `ListCommandExecutions` API untuk mencantumkan semua eksekusi perintah di akun Anda, dan kemudian menggunakan `GetCommandExecution` API untuk mendapatkan informasi tambahan tentang eksekusi tertentu. Untuk informasi selengkapnya, lihat [Daftar eksekusi perintah di akun Anda](send-monitor-remote-command-cli.md#list-remote-command-execution-cli).

   ```
   aws iot get-command-execution \    
       --execution-id <"07e4b780-7eca-4ffd-b772-b76358da5542"> \ 
       --target-arn arn:aws:iot:us-east-1:<account>:thing/myVehicle
   ```

   Menjalankan perintah ini mengembalikan informasi tentang eksekusi perintah, status eksekusi, waktu ketika mulai mengeksekusi, dan waktu ketika itu selesai. Misalnya, respons berikut menunjukkan bahwa eksekusi perintah berhasil pada perangkat target dan mode kemudi dimatikan.

   ```
   {
       "executionId": "07e4b780-7eca-4ffd-b772-b76358da5542",
       "commandArn": "arn:aws:iot:ap-south-1:123456789012:command/TurnOffSteeringMode",
       "targetArn": "arn:aws:iot:ap-south-1:123456789012:thing/myVehicle",
       "result": "SUCCEEDED",
        "statusReason": {
           "reasonCode": "65536",
           "reasonDescription": "SUCCESS"
       },
       "result": {
           "KeyName": {
               "S": "",
               "B": true,
               "BIN": null
           }
       },
       "createdAt": "2024-03-23T00:50:10.095000-07:00",
       "completedAt": "2024-03-23T00:50:10.095000-07:00",
       "parameters": '{
            "$actuatorPath.Vehicle.Chassis.SteeringWheel.TurnOffSteeringMode":
            { "S": "true" }
       }' 
   }
   ```

## Membersihkan
<a name="remote-command-tutorial-clean"></a>

Sekarang setelah Anda membuat perintah dan menjalankannya di perangkat Anda, jika Anda tidak lagi berniat menggunakan perintah ini, Anda dapat menghapusnya. Setiap eksekusi perintah yang tertunda yang sedang berlangsung akan terus berjalan tanpa terpengaruh oleh permintaan penghapusan.

**catatan**  
Atau, Anda juga dapat menghentikan perintah jika sudah usang dan Anda mungkin perlu menggunakannya nanti untuk berjalan di perangkat target.

1. 

**(Opsional) Menghentikan sumber daya perintah**

   Jalankan perintah berikut untuk menghentikan perintah, di `command-id` mana ID perintah dalam output `get-command` operasi dari atas.

   ```
   aws iot update-command \    
      --command-id TurnOffSteeringMode \    
      --deprecated
   ```

   Menjalankan perintah ini mengembalikan output yang menunjukkan perintah telah usang. Anda juga dapat menggunakan CLI untuk mengembalikan perintah. 
**catatan**  
Anda juga dapat menggunakan `update-command` CLI untuk memperbarui nama tampilan dan deskripsi perintah. Untuk informasi tambahan, lihat [Memperbarui atau menghentikan sumber daya perintah](create-manage-remote-command-cli.md#update-remote-command-cli).

   ```
   {
       "commandId": "TurnOffSteeringMode",
       "deprecated": true,
       "lastUpdatedAt": "2024-05-09T23:16:51.370000-07:00"
   }
   ```

1. 

**Hapus perintah**

   Jalankan perintah berikut untuk menghapus perintah, yang ditentukan oleh`command-id`.
**catatan**  
Tindakan penghapusan bersifat permanen dan tidak dapat dibatalkan.

   ```
   aws iot delete-command --command-id TurnOffSteeringMode
   ```

   Jika permintaan penghapusan berhasil, Anda akan melihat HTTP `statusCode` 202 atau 204 tergantung pada apakah Anda menandai perintah untuk penghentian dan kapan itu tidak digunakan lagi. Untuk informasi lebih lanjut dan contoh, lihat [Hapus sumber daya perintah](create-manage-remote-command-cli.md#delete-remote-command-cli).

   Anda dapat menggunakan `get-command` CLI untuk memverifikasi bahwa perintah telah dihapus dari akun Anda.

1. 

**(Opsional) Hapus eksekusi perintah**

   Secara default, semua eksekusi perintah akan dihapus dalam enam bulan sejak tanggal Anda membuatnya. Anda dapat melihat informasi ini menggunakan `timeToLive` parameter dari `GetCommandExecution` API.

   Atau, jika eksekusi perintah Anda telah menjadi terminal, seperti ketika status eksekusi Anda adalah salah satu`SUCCEEDED`,`FAILED`, atau`REJECTED`, Anda dapat menghapus eksekusi perintah. Jalankan perintah berikut untuk menghapus eksekusi, di mana `execution-id` ID Eksekusi dalam output `get-command-execution` operasi dari atas.

   ```
   aws iot delete-command-execution \ 
               --execution-id "07e4b780-7eca-4ffd-b772-b76358da5542"
   ```

   Anda dapat menggunakan `get-command-execution` CLI untuk memverifikasi bahwa eksekusi perintah telah dihapus dari akun Anda.