

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

# Skenario penggunaan perintah
<a name="remote-command-use-cases"></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).

Saat menggunakan fitur perintah, Anda dapat membuat dan menjalankan perintah dalam skenario berikut:
+ Anda dapat menghilangkan parameter selama pembuatan dan hanya menentukan ID perintah. Dalam hal ini, Anda perlu menentukan parameter yang akan digunakan saat menjalankan perintah pada perangkat target.
+ Anda dapat menentukan satu atau lebih parameter, dan mengkonfigurasi nilai default untuk mereka saat membuat perintah. Memberikan nilai default akan membantu melindungi Anda dari pengiriman perintah yang tidak akurat.
+ Anda dapat menentukan satu atau lebih parameter, dan mengkonfigurasi nilai untuk mereka saat membuat perintah. Lebih dari satu parameter dapat disediakan tetapi hanya satu dari mereka yang akan dieksekusi, dan `Name` bidang parameter ini harus menggunakan `$actuatorPath` awalan.

Bagian ini menyediakan beberapa skenario penggunaan untuk `CreateCommand` dan `StartCommandExecution` API dan menggunakan parameter. Ini juga menunjukkan beberapa contoh penggunaan perintah dengan template negara.

**Topics**
+ [Membuat perintah tanpa parameter](#remote-command-use-case1)
+ [Membuat perintah dengan nilai default untuk parameter](#remote-command-use-case2)
+ [Membuat perintah dengan nilai parameter](#remote-command-use-case3)
+ [Menggunakan perintah dengan template negara](#remote-command-use-cases-templates)

## Membuat perintah tanpa parameter
<a name="remote-command-use-case1"></a>

Kasus penggunaan berikut menunjukkan bagaimana Anda dapat menggunakan `CreateCommand` API atau `create-command` CLI untuk membuat perintah tanpa parameter. Saat Anda membuat perintah, Anda hanya perlu memberikan ID perintah dan peran ARN.

Kasus penggunaan ini sangat berguna dalam kasus penggunaan berulang, seperti ketika Anda ingin mengirim perintah yang sama beberapa kali ke kendaraan. Dalam hal ini, perintah tidak terikat pada aktuator tertentu dan memberi Anda fleksibilitas untuk menjalankan perintah pada aktuator apa pun. Anda harus menentukan parameter pada waktu berjalan sebagai gantinya ketika menjalankan perintah menggunakan `StartCommandExecution` API atau `start-command-execution` CLI, yang mencakup aktuator dan nilai sinyal fisik.

### Membuat perintah tanpa `mandatory-parameters` input
<a name="remote-command-use-case1-create"></a>

Kasus penggunaan ini menunjukkan cara membuat perintah tanpa input parameter wajib.

```
aws iot create-command \
    --command-id "UserJourney1" \
    --role-arn "arn:aws:iam:accountId:role/FwCommandExecutionRole" \
    --description "UserJourney1 - No mandatory parameters" \
    --namespace "AWS-IoT-FleetWise"
```

### Menjalankan perintah yang dibuat tanpa `mandatory-parameters` input
<a name="remote-command-use-case1-start"></a>

Dalam contoh pertama ini, perintah yang dibuat di atas memungkinkan Anda untuk menjalankan perintah pada aktuator apa pun tanpa batasan. Untuk mengatur `actuator1` ke nilai 10, jalankan:

```
aws iot-jobs-data start-command-execution \
    --command-arn arn:aws:iot:region:111122223333:command/UserJourney1 \
    --target-arn arn:aws:iot:region:111122223333:thing/target-vehicle \
    --parameters '{
        "$actuatorPath.Vehicle.actuator1": {"S": "10"}
    }'
```

Demikian pula, Anda dapat menjalankan perintah `actuator3` yang menetapkan nilai`true`.

```
aws iot-jobs-data start-command-execution \
    --command-arn arn:aws:iot:region:111122223333:command/UserJourney1 \
    --target-arn arn:aws:iot:region:111122223333:thing/target-vehicle \
    --parameters '{
        "$actuatorPath.Vehicle.actuator3": {"S": "true"}
    }'
```

## Membuat perintah dengan nilai default untuk parameter
<a name="remote-command-use-case2"></a>

Perintah ini hanya memungkinkan Anda untuk menjalankan perintah pada aktuator yang ditentukan. Memberikan nilai default akan membantu melindungi Anda dari pengiriman perintah yang tidak akurat. Misalnya, `LockDoor` perintah yang mengunci dan membuka kunci pintu dapat dikonfigurasi dengan nilai default untuk menghindari perintah membuka pintu secara tidak sengaja.

Kasus penggunaan ini sangat berguna ketika Anda ingin mengirim perintah yang sama beberapa kali dan melakukan tindakan berbeda pada aktuator yang sama, seperti mengunci dan membuka kunci pintu kendaraan. Jika Anda ingin mengatur aktuator ke nilai default, maka Anda tidak perlu meneruskan qny `parameters` ke CLI. `start-command-execution` Jika Anda menentukan nilai yang berbeda untuk `parameters` di `start-command-execution` CLI, itu akan mengganti nilai default.

### Membuat perintah dengan nilai default untuk `mandatory-parameters`
<a name="remote-command-use-case2-create"></a>

Perintah berikut menunjukkan bagaimana memberikan nilai default untuk actuator1.

```
aws iot create-command \
    --command-id "UserJourney2" \
    --namespace "AWS-IoT-FleetWise" \
    --role-arn "arn:aws:iam:accountId:role/FwCommandExecutionRole" \
    --mandatory-parameters '[
        {
            "name": "$actuatorPath.Vehicle.actuator1",
            "defaultValue": {"S": "0"}
        }
    ]'
```

### Menjalankan perintah yang dibuat dengan nilai default untuk `mandatory-parameters`
<a name="remote-command-use-case2-start"></a>

Perintah `UserJourney2` ini memungkinkan Anda untuk menjalankan perintah tanpa perlu melewatkan nilai input selama runtime. Dalam hal ini, eksekusi saat runtime akan menggunakan nilai default yang ditentukan selama pembuatan.

```
aws iot-data start-command-execution \
    --command-arn arn:aws:iot:region:111122223333:command/UserJourney3 \
    --target-arn arn:aws:iot:region:111122223333:thing/target-vehicle
```

Anda juga dapat meneruskan nilai yang berbeda untuk aktuator yang sama, actuator1, selama runtime, yang akan mengganti nilai default.

```
aws iot-jobs-data start-command-execution \
    --command-arn arn:aws:iot:region:111122223333:command/UserJourney3 \
    --target-arn arn:aws:iot:region:111122223333:thing/target-vehicle \
    --parameters '{
        "$actuatorPath.Vehicle.actuator1": {"S": "139"}
    }'
```

## Membuat perintah dengan nilai parameter
<a name="remote-command-use-case3"></a>

Perintah ini hanya memungkinkan Anda untuk menjalankan perintah pada aktuator yang ditentukan. Ini juga memaksa Anda untuk menetapkan nilai untuk aktuator selama runtime.

Kasus penggunaan ini sangat berguna ketika Anda ingin pengguna akhir hanya melakukan tindakan tertentu tertentu pada beberapa aktuator saat menjalankannya di kendaraan.

**catatan**  
Anda dapat memiliki lebih dari pasangan nama-nilai untuk `mandatory-parameters` input, dengan nilai default untuk beberapa atau semuanya. Saat runtime, Anda kemudian dapat menentukan parameter yang ingin Anda gunakan saat menjalankan aktuator, asalkan nama aktuator menggunakan nama yang sepenuhnya memenuhi syarat dengan awalan. `$actuatorPath.`

### Membuat perintah tanpa nilai default untuk `mandatory-parameters`
<a name="remote-command-use-case3-create"></a>

Perintah ini hanya memungkinkan Anda untuk menjalankan perintah pada aktuator yang ditentukan. Ini juga memaksa Anda untuk menetapkan nilai untuk aktuator selama runtime.

```
aws iot create-command \
    --command-id "UserJourney2" \
    --namespace "AWS-IoT-FleetWise" \
    --role-arn "arn:aws:iam:accountId:role/FwCommandExecutionRole" \
    --mandatory-parameters '[
        {
            "name": "$actuatorPath.Vehicle.actuator1"
        }
    ]'
```

### Menjalankan perintah yang dibuat tanpa nilai default untuk `mandatory-parameters`
<a name="remote-command-use-case3-start"></a>

Saat menjalankan perintah, dalam hal ini, Anda harus menentukan nilai untuk aktuator1. Eksekusi perintah yang ditunjukkan di bawah ini akan berhasil mengatur nilai `actuator1` to`10`.

```
aws iot-data start-command-execution \    
    --command-arn arn:aws:iot:region:111122223333:command/UserJourney2 \
    --target-arn arn:aws:iot:region:111122223333:thing/target-vehicle \
    --parameters '{
        "$actuatorPath.Vehicle.actuator1": {"S": "10"}
    }'
```

## Menggunakan perintah dengan template negara
<a name="remote-command-use-cases-templates"></a>

Anda juga dapat menggunakan perintah operasi API untuk pengumpulan dan pemrosesan data status. Misalnya, Anda dapat mengambil snapshot status satu kali atau mengaktifkan atau menonaktifkan templat status untuk memulai atau menghentikan pengumpulan data status kendaraan. Contoh berikut menunjukkan cara menggunakan fitur perintah dengan template negara. Untuk informasi selengkapnya, lihat [Operasi templat status untuk pengumpulan dan pemrosesan data](state-template-api-operations.md)

**catatan**  
Bidang Nama yang ditentukan sebagai bagian dari `mandatory-parameters` input harus menggunakan `$stateTemplate` awalan.

### Contoh 1: Membuat perintah untuk template status dengan nilai default
<a name="remote-command-use-cases-template-ex1"></a>

Contoh ini menunjukkan cara menggunakan `create-command` CLI untuk mengaktifkan template status.

```
aws iot create-command \
    --command-id <COMMAND_ID> \
    --display-name "Activate State Template" \
    --namespace AWS-IoT-FleetWise \    
    --mandatory-parameters '[
      {
          "name": "$stateTemplate.name"
      },
      {
          "name": "$stateTemplate.operation",
          "defaultValue": {"S": "activate"}
      }
    ]'
```

Demikian pula, perintah berikut menunjukkan contoh bagaimana Anda dapat menggunakan `start-command-execution` CLI untuk template negara.

```
aws iot-data start-command-execution \
    --command-arn arn:aws:iot:region:111122223333:command/<COMMAND_ID> \
    --target-arn arn:aws:iot:region:111122223333:thing/<VEHICLE_NAME> \
    --parameters '{
       "$stateTemplate.name": {"S": "ST345"}
    }'
```

### Contoh 2: Membuat perintah untuk template status tanpa nilai default
<a name="remote-command-use-cases-template-ex2"></a>

Perintah berikut membuat beberapa template status tanpa nilai default untuk salah satu parameter. Ini memaksa Anda untuk menjalankan perintah dengan parameter ini dan nilai-nilai untuk mereka.

```
aws iot create-command \
    --command-id <COMMAND_ID> \
    --display-name "Activate State Template" \
    --namespace AWS-IoT-FleetWise \
    --mandatory-parameters '[
      {
          "name": "$stateTemplate.name",
          "defaultValue": {"S": "ST123"}
      },
      {
          "name": "$stateTemplate.operation",
          "defaultValue": {"S": "activate"}
      },
      {
          "name": "$stateTemplate.deactivateAfterSeconds",
          "defaultValue": {"L": "120"}
      } 
    ]'
```

Perintah berikut menunjukkan bagaimana Anda dapat menggunakan `start-command-execution` CLI untuk contoh di atas.

```
aws iot-data start-command-execution \
    --command-arn arn:aws:iot:region:111122223333:command/<COMMAND_ID> \
    --target-arn arn:aws:iot:region:111122223333:thing/<VEHICLE_NAME> \
    --parameters '{
        "$stateTemplate.name": {"S": "ST345"},
        "$stateTemplate.operation": {"S": "activate"},
        "$stateTemplate.deactivateAfterSeconds" : {"L": "120"}
```