

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# コマンドの作成と管理
<a name="create-manage-remote-command-cli"></a>

**重要**  
現在、特定の AWS IoT FleetWise 機能へのアクセスはゲートされています。詳細については、「[AWS AWS IoT FleetWise でのリージョンと機能の可用性](fleetwise-regions.md)」を参照してください。

再利用可能なリモートアクションを設定するか、デバイスに 1 回限りの即時の指示を送信できます。この機能を使用すると、デバイスがほぼリアルタイムで実行できる手順を指定できます。コマンドを使用すると、ターゲット車両の再利用可能なリモートアクションを設定できます。コマンドを作成したら、特定の車両を対象とするコマンド実行を開始できます。

このトピックでは、 AWS IoT Core API または を使用してコマンドリソースを作成および管理する方法を示します AWS CLI。コマンドリソースで次のアクションを実行する方法を示します。

**Topics**
+ [コマンドリソースを作成する](#create-remote-command-cli)
+ [コマンドに関する情報を取得する](#get-remote-command-cli)
+ [アカウントのコマンドを一覧表示する](#list-remote-command-cli)
+ [コマンドリソースを更新または廃止する](#update-remote-command-cli)
+ [コマンドリソースを削除する](#delete-remote-command-cli)

## コマンドリソースを作成する
<a name="create-remote-command-cli"></a>

[https://docs.aws.amazon.com/iot/latest/apireference/API_CreateCommand.html](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateCommand.html) AWS IoT Core コントロールプレーン API オペレーションまたは AWS IoT FleetWise コンソールを使用してコマンドを作成できます。

### コマンドを作成する (コンソール)
<a name="create-command-console"></a>

 AWS IoT FleetWise コンソールを使用してコマンドを作成できます。

**コマンドを作成するには**

1. [AWS IoT FleetWise コンソール](https://console.aws.amazon.com/iotfleetwise)を開きます。

1. ナビゲーションペインで、 **コマンド**を選択します。

1. **[コマンドを作成]** を選択します。

1. 車両で実行するコマンドを識別するのに役立つ一意のコマンド ID を指定します。

1. (オプション) オプションの表示名と説明を指定します。

1. (オプション) アクチュエータとデフォルトのパラメータ値を選択します。パラメータは、ターゲット車両がコマンドを受信したときに実行できるアクションを指定します。パラメータを追加しない場合は、コマンドの実行時にパラメータを指定する必要があります。

1. コマンドのペイロードを生成するアクセス許可を付与する IAM ロールを選択します。[「アクセスの制御](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/controlling-access.html#generate-command-payload)」を参照してください。

1. **[コマンドを作成]** を選択します。

### コマンドを作成する (AWS CLI)
<a name="create-remote-command-example"></a>

次の例は、 パラメータを使用してコマンドを作成する方法を示しています。

#### コマンドを作成する際の考慮事項
<a name="create-remote-command-considerations"></a>

でコマンドを作成する場合 AWS IoT FleetWise:
+ 車両でコマンドを作成および実行するアクセス許可を付与`roleArn`する を指定する必要があります。KMS キーが有効な場合など、ポリシーの例の詳細については、「」を参照してください[を使用してコマンドのペイロードを生成する AWS IoT Device Management アクセス許可を付与する AWS IoT FleetWise](controlling-access.md#generate-command-payload)。
+ 名前空間`AWS-IoT-FleetWise`として を指定する必要があります。
+ 代わりに、 `mandatory-parameters`フィールドをスキップして実行時に指定できます。または、パラメータを使用してコマンドを作成し、オプションでデフォルト値を指定することもできます。デフォルト値を指定した場合、実行時にこれらの値を使用するか、独自の値を指定して上書きできます。これらのその他の例については、「」を参照してください[コマンドの使用シナリオ](remote-command-use-cases.md)。
+ `mandatory-parameters` フィールドに最大 3 つの名前と値のペアを指定できます。ただし、車両で コマンドを実行する場合、1 つの名前と値のペアのみが受け入れられ、 `name`フィールドは`$actuatorPath.`プレフィックスで完全修飾名を使用する必要があります。
+ *command-id* をコマンドの一意の識別子に置き換えます。UUID、英数字、「-」、「\$1」を使用できます。
+ *role-arn* を、 などのコマンドを作成および実行するアクセス許可を付与する IAM ロールに置き換えます`"arn:aws:iam:accountId:role/FwCommandExecutionRole"`。
+ (オプション) *display-name* をコマンドのわかりやすい名前に置き換え、 *description* をコマンドのわかりやすい説明に置き換えます。
+ `mandatory-parameters` オブジェクト*の名前*と*値を*、作成するコマンドの必要な情報に置き換えます。`name` フィールドは、 をプレフィックス`$actuatorPath.`とするシグナルカタログで定義されている完全修飾名です。たとえば、 `name`は *\$1actuatorPath.Vehicle.Chassis.SteeringWheel.HandsOff.HandsOffSteeringMode* にすることができ、*\$1"B": false\$1* のようなステアリングモードのステータスを示すブール値`value`にすることができます。

```
aws iot create-command --command-id command-id \ 
    --role-arn role-arn \
    --description description \
    --display-name display-name \     
    --namespace "AWS-IoT-FleetWise" \
    --mandatory-parameters '[
        {
            "name": name, 
            "value": value
        }
   ]'
```

`CreateCommand` API オペレーションは、 コマンドの ID と ARN (Amazon リソースネーム) を含むレスポンスを返します。

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

## コマンドに関する情報を取得する
<a name="get-remote-command-cli"></a>

[https://docs.aws.amazon.com/iot/latest/apireference/API_GetCommand.html](https://docs.aws.amazon.com/iot/latest/apireference/API_GetCommand.html) AWS IoT Core コントロールプレーン API オペレーションを使用して、コマンドリソースに関する情報を取得できます。

コマンドリソースに関する情報を取得するには、次のコマンドを実行します。*command-id* を、コマンドの作成時に使用された識別子に置き換えます。

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

`GetCommand` API オペレーションは、以下の情報を含むレスポンスを返します。
+ コマンドの ID と ARN (Amazon リソースネーム）。
+ コマンドが作成され、最後に更新された日時。
+ 車両で実行できるかどうかを示すコマンド状態。
+ コマンドの作成時に指定したパラメータ。

```
{
    "commandId": "HandsOffSteeringMode",
    "commandArn": "arn:aws:iot:ap-south-1:123456789012:command/HandsOffSteeringMode"",
    "namespace": "AWS-IoT-FleetWise",
    "mandatoryParameters":[
        {
            "name": "$actuatorPath.Vehicle.Chassis.SteeringWheel.HandsOff.HandsOffSteeringMode",
            "value": {"B": false }
        }
    ],
    "createdAt": "2024-03-23T11:24:14.919000-07:00",
    "lastUpdatedAt": "2024-03-23T11:24:14.919000-07:00",
    "deprecated": false,
    "pendingDeletion": false
}
```

## アカウントのコマンドを一覧表示する
<a name="list-remote-command-cli"></a>

[https://docs.aws.amazon.com/iot/latest/apireference/API_ListCommands.html](https://docs.aws.amazon.com/iot/latest/apireference/API_ListCommands.html) AWS IoT Core コントロールプレーン API オペレーションを使用して、作成したアカウント内のすべてのコマンドを一覧表示できます。

アカウントのコマンドを一覧表示するには、次のコマンドを実行します。デフォルトでは、API は両方の名前空間用に作成されたコマンドを返します。リストをフィルタリングして、作成されたコマンドのみを表示するには AWS IoT FleetWise、次のコマンドを実行します。

**注記**  
リストを昇順または降順にソートしたり、特定のコマンドパラメータ名を持つコマンドのみを表示するようにリストをフィルタリングしたりすることもできます。

```
aws iot list-commands --namespace "AWS-IoT-FleetWise"
```

`ListCommands` API オペレーションは、次の情報を含むレスポンスを返します。
+ コマンドの ID と ARN (Amazon リソースネーム）。
+ コマンドが作成され、最後に更新された日時。
+ コマンドを車両で実行できるかどうかを示すコマンド状態。

## コマンドリソースを更新または廃止する
<a name="update-remote-command-cli"></a>

[https://docs.aws.amazon.com/iot/latest/apireference/API_UpdateCommand.html](https://docs.aws.amazon.com/iot/latest/apireference/API_UpdateCommand.html) AWS IoT Core コントロールプレーン API オペレーションまたは AWS IoT FleetWise コンソールを使用して、コマンドリソースを更新できます。コマンドの表示名と説明を更新できます。コマンドが現在使用されていない場合は、そのコマンドを非推奨にすることもできます。

**注記**  
コマンドの実行時に使用する名前空間情報またはパラメータを変更することはできません。

### コマンドを更新する (コンソール)
<a name="update-command-console"></a>

**コマンドを更新する**  
コンソールからコマンドを更新するには、 AWS IoT FleetWise コンソールの[コマンド](https://console.aws.amazon.com/iotfleetwise/home#/commands)ページに移動し、次の手順を実行します。

1. 更新するコマンドを選択し、**編集**を選択します。

1. コマンドの詳細を編集し、**変更の保存**を選択します。

**コマンドを非推奨にする**  
コンソールからコマンドを非推奨にするには、 AWS IoT FleetWise コンソールの[コマンド](https://console.aws.amazon.com/iotfleetwise/home#/commands)ページに移動し、次の手順を実行します。

1. 非推奨にするコマンドを選択し、**非推奨**を選択します。

1. 非推奨を確認し、**非推奨**を選択します。

### コマンドを更新する (AWS CLI)
<a name="update-command-cli"></a>

**コマンドを更新する**  
コマンドリソースを更新するには、次のコマンドを実行します。*command-id* を更新したいコマンドの識別子に置き換え、更新された *display-name* と*説明*を指定します。

```
aws iot update-command \ 
    --command-id command-id \ 
    --display-name display-name \ 
    --description description
```

`UpdateCommand` API オペレーションは次のレスポンスを返します。

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

**コマンドを非推奨にする**  
コマンドを廃止するのは、デバイスへの使用を停止する場合や、古い場合です。次の例は、コマンドを非推奨にする方法を示しています。

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

`UpdateCommand` API オペレーションは、 コマンドの ID と ARN (Amazon リソースネーム) を含むレスポンスを返します。

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

コマンドが廃止されると、既存のコマンド実行は、終了するまで車両上で実行され続けます。新しいコマンド実行を実行するには、 `UpdateCommand` API を使用してコマンドを復元し、使用可能にする必要があります。コマンドの廃止と復元、およびその考慮事項の詳細については、「 *AWS IoT Core デベロッパーガイド*」の[「コマンドリソースの廃止](https://docs.aws.amazon.com/iot/latest/developerguide/iot-remote-command-deprecate)」を参照してください。

## コマンドリソースを削除する
<a name="delete-remote-command-cli"></a>

[https://docs.aws.amazon.com/iot/latest/apireference/API_DeleteCommand.html](https://docs.aws.amazon.com/iot/latest/apireference/API_DeleteCommand.html) AWS IoT Core コントロールプレーン API オペレーションまたは AWS IoT FleetWise コンソールを使用して、コマンドリソースを削除できます。

**注記**  
削除の操作は永続的で、元には戻せません。コマンドはアカウントから完全に削除されます。

### コマンドを削除する (コンソール)
<a name="delete-command-console"></a>

コンソールからコマンドを削除するには、 AWS IoT FleetWise コンソールの[コマンド](https://console.aws.amazon.com/iotfleetwise/home#/commands)ページに移動し、次の手順を実行します。

1. 削除するコマンドを選択し、**削除**を選択します。

1. コマンドを削除することを確認し、**削除**を選択します。

### コマンドを削除する (AWS CLI)
<a name="delete-command-cli"></a>

コマンドリソースを削除するには、次のコマンドを実行します。*command-id* は、削除するコマンドの識別子に置き換えます。次の例は、コマンドリソースを削除する方法を示しています。

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

削除リクエストが成功した場合:
+ コマンドが最大タイムアウトの 24 時間を超えて非推奨になった場合、コマンドはすぐに削除され、HTTP `statusCode`は 204 になります。
+ コマンドが非推奨になっていない場合、または最大タイムアウトより短い期間非推奨になっている場合、コマンドは `pending deletion`状態になり、HTTP は 202 `statusCode` になります。コマンドは、最大タイムアウトの 24 時間後にアカウントから自動的に削除されます。