翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
例: コマンドを使用して車両のステアリングモードを制御する (AWS CLI)
重要
現在、特定の AWS IoT FleetWise 機能へのアクセスはゲートされています。詳細については、「AWSAWS IoT FleetWise でのリージョンと機能の可用性」を参照してください。
次の例は、 を使用して コマンド機能を使用する方法を示しています AWS CLI。この例では、 AWS IoT FleetWise 車両をターゲットデバイスとして使用して、リモートでステアリングモードを制御するコマンドを送信する方法を示します。
車両ステアリングモードの例の概要
この例では、次の操作を行います。
-
を使用して オペレーションのコマンドリソースを作成し、車両のステアリングモード
create-commandAWS CLI を変更します。 -
を使用して、コマンドが作成された時刻や最後に更新された時刻など、コマンドに関する情報を取得します
get-commandAWS CLI。 -
start-command-executionAWS CLI ステアリングモードを必須パラメータとする を使用して、 コマンドを車両に送信します。このパラメータはデバイスで実行されます。 -
を使用してコマンド実行の結果を取得します
get-command-executionAWS CLI。実行が完了した日時を確認し、実行結果やコマンドの実行完了にかかった時間などの追加の詳細を取得できます。 -
使用しなくなったコマンドとコマンド実行を削除して、クリーンアップアクティビティを実行します。
前提条件
この例を実行する前に、以下を実行します。
-
車両を AWS IoT レジストリの AWS IoT モノ AWS IoT FleetWise としてプロビジョニングします。また、モノに証明書を追加してアクティブ化し、モノにポリシーをアタッチする必要があります。その後、デバイスはクラウドに接続し、コマンドを実行できます。詳細については、「車両のプロビジョニング」を参照してください。
-
「」に示すように、 コマンドを使用して API オペレーションを実行するアクセス許可を付与する IAM ユーザーと IAM ポリシーを作成しますリモートコマンドを使用するための IAM ポリシー。
リモートコマンドを使用するための IAM ポリシー
次の表は、 コマンド機能のすべてのコントロールプレーンおよびデータプレーン API オペレーションへのアクセスを許可する IAM ポリシーの例を示しています。アプリケーションのユーザーは、表に示すように、すべてのリモートコマンド API オペレーションを実行するアクセス許可を持ちます。
| API アクション | コントロール/データプレーン | プロトコル | 説明 | [リソース] |
|---|---|---|---|---|
CreateCommand |
コントロールプレーン | HTTP | コマンドリソースを作成します。 |
|
GetCommand |
コントロールプレーン | HTTP | コマンドに関する情報を取得します。 |
|
UpdateCommand |
コントロールプレーン | HTTP | コマンドまたは に関する情報を更新して非推奨にします |
|
ListCommands |
コントロールプレーン | HTTP | アカウントのコマンドを一覧表示します |
|
DeleteCommand |
コントロールプレーン | HTTP | コマンドを削除します。 |
|
StartCommandExecution |
データプレーン | HTTP | コマンドの実行を開始します |
|
UpdateCommandExecution |
データプレーン | MQTT | コマンド実行を更新する |
|
GetCommandExecution |
コントロールプレーン | HTTP | コマンド実行に関する情報を取得します。 |
|
ListCommandExecutions |
コントロールプレーン | HTTP | アカウントのコマンド実行を一覧表示します |
|
DeleteCommandExecution |
コントロールプレーン | HTTP | コマンド実行を削除します。 |
|
この例では、次のように置き換えます。
-
など AWS リージョン、 で を使用しますus-east-1ap-south-1。 -
は、 などの 番号に置き換えます AWS アカウント11112222333357EXAMPLE833。 -
、command-id、および は、command-id1LockDoorや などの一意のコマンド識別子を使用しますcommand-id2TurnOffAC。 -
などの AWS IoT モノの名前を指定しますthing-namemy_car。
AWS IoT コマンドを実行する (AWS CLI)
以下は、 を使用してコマンドオペレーション AWS CLI を実行し、車両のステアリングモードを変更する方法を示しています。
-
ステアリングモードオペレーションのコマンドリソースを作成する
create-commandCLI を使用してデバイスに送信するコマンドを作成します。この例では、以下を指定します。-
としてのTurnOffSteeringModecommand-id -
role-arnは"arn:aws:iam:として指定accountId:role/FwCommandExecutionRole"role-arnする必要があります。これは、車両でコマンドを作成および実行するアクセス許可を付与する IAM ロールであるためです。詳細については、「を使用してコマンドのペイロードを生成する AWS IoT Device Management アクセス許可を付与する AWS IoT FleetWise」を参照してください。 -
display-name「」としてTurn off steering mode -
namespaceは である必要がありますAWS-IoT-FleetWise -
mandatory-parametersを「$actuatorPath.Vehicle.Chassis.SteeringWheel.TurnOffSteeringModename」とし、defaultValue を「$actuatorPath.Vehicle.Chassis.SteeringWheel.TurnOffSteeringMode」とする名前と値のペアactuatorPath.Vehicle.Chassis.SteeringWheel.TurnOffSteeringMode{ "S": "true" }注記
必須パラメータを指定せずにコマンドを作成することもできます。次に、
start-command-executionCLI を使用してコマンドを実行するときに使用するパラメータを指定する必要があります。例については、コマンドの使用シナリオを参照してください。
重要
AWS-IoT-FleetWise名前空間を使用する場合は、 の一部として指定されたNameフィールドが$actuatorPath.プレフィックスmandatory-parametersを使用し、Valueフィールドが文字列データ型を使用していることを確認する必要があります。aws iot create-command \ --command-idTurnOffSteeringMode\ --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"} } ]'次の出力は、 CLI からのレスポンスの例を示しています。ここで、
ap-south-1と123456789012は AWS リージョン および AWS アカウント ID の例です。{ "commandId": "TurnOffSteeringMode", "commandArn": "arn:aws:iot:ap-south-1:123456789012:command/TurnOffSteeringMode" }このコマンドを使用するその他の例については、「」を参照してくださいコマンドリソースを作成する。
-
-
コマンドに関する情報を取得する
次のコマンドを実行して、コマンドに関する情報を取得します。ここで、
command-idは、上記のcreate-commandオペレーションの出力のコマンド ID です。注記
複数のコマンドを作成する場合は、
ListCommandsAPI を使用してアカウント内のすべてのコマンドを一覧表示し、GetCommandAPI を使用して特定のコマンドに関する追加情報を取得できます。詳細については、「アカウントのコマンドを一覧表示する」を参照してください。aws iot get-command --command-idTurnOffSteeringModeこのコマンドを実行すると、次のレスポンスが生成されます。コマンドが作成された時刻と最後に更新された時刻、指定したパラメータ、およびコマンドをデバイスで実行できるかどうかが表示されます。
{ "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 }このコマンドを使用するその他の例については、「」を参照してくださいコマンドに関する情報を取得する。
-
コマンド実行を開始する
次のコマンドを実行してコマンドの実行を開始します。ここで、
command-arnは上からのget-commandオペレーションの出力のコマンド ARN です。target-arnは、 コマンドを実行するターゲットデバイスの ARN です。たとえば、 です。myVehicleこの例では、コマンドの作成時にパラメータにデフォルト値を指定しているため、CLI
start-command-executionはコマンドの実行時にこれらの値を使用できます。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このコマンドを実行すると、コマンド実行 ID が返されます。この ID を使用して、コマンド実行ステータス、詳細、およびコマンド実行履歴をクエリできます。
{ "executionId": "07e4b780-7eca-4ffd-b772-b76358da5542" }CLI の使用に関するその他の例については、「」を参照してくださいコマンドを送信する (AWS CLI)。
-
コマンド実行に関する情報を取得する
次のコマンドを実行して、ターゲットデバイスで実行したコマンドに関する情報を取得します。上から
start-command-execution操作の出力としてexecution-id取得した と、ターゲットとするデバイスの ARNtarget-arnである を指定します。注記
-
最新のステータス情報を取得するには、デバイスが MQTT API を使用するコマンドの
UpdateCommandExecutionMQTT 予約レスポンストピックに更新されたステータス情報を公開している必要があります。詳細については、「コマンド実行結果を更新する」を参照してください。 -
複数のコマンド実行を開始する場合は、
ListCommandExecutionsAPI を使用してアカウント内のすべてのコマンド実行を一覧表示し、GetCommandExecutionAPI を使用して特定の実行に関する追加情報を取得できます。詳細については、「アカウントのコマンド実行を一覧表示する」を参照してください。
aws iot get-command-execution \ --execution-id<"07e4b780-7eca-4ffd-b772-b76358da5542">\ --target-arn arn:aws:iot:us-east-1:<account>:thing/myVehicleこのコマンドを実行すると、コマンドの実行、実行ステータス、実行を開始した時刻、完了時刻に関する情報が返されます。たとえば、次のレスポンスは、ターゲットデバイスでコマンドの実行が成功し、ステアリングモードがオフになったことを示しています。
{ "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" } }' } -
クリーンアップ
コマンドを作成してデバイスで実行したので、このコマンドを使用する予定がない場合は、削除できます。進行中の保留中のコマンド実行は、削除リクエストの影響を受けずに引き続き実行されます。
注記
または、コマンドが古く、後でターゲットデバイスで実行するために使用する必要がある場合は、コマンドを非推奨にすることもできます。
-
(オプション) コマンドリソースを非推奨にする
次のコマンドを実行してコマンドを非推奨にします。ここで、
command-idは上記のget-commandオペレーションの出力のコマンド ID です。aws iot update-command \ --command-idTurnOffSteeringMode\ --deprecatedこのコマンドを実行すると、コマンドが廃止されたことを示す出力が返されます。CLI を使用してコマンドを復元することもできます。
注記
update-commandCLI を使用して、コマンドの表示名と説明を更新することもできます。詳細については、「コマンドリソースを更新または廃止する」を参照してください。{ "commandId": "TurnOffSteeringMode", "deprecated": true, "lastUpdatedAt": "2024-05-09T23:16:51.370000-07:00" } -
コマンドを削除する
次のコマンドを実行して、 で指定された コマンドを削除します
command-id。注記
削除アクションは永続的であり、元に戻すことはできません。
aws iot delete-command --command-idTurnOffSteeringMode削除リクエストが成功すると、コマンドを非推奨にしたか、いつ非推奨にしたかに応じて、HTTP
statusCodeが 202 または 204 になります。詳細と例については、「コマンドリソースを削除する」を参照してください。get-commandCLI を使用して、コマンドがアカウントから削除されたことを確認できます。 -
(オプション) コマンド実行を削除する
デフォルトでは、すべてのコマンド実行は、作成日から 6 か月以内に削除されます。この情報は、
GetCommandExecutionAPI のtimeToLiveパラメータを使用して表示できます。または、実行ステータスが 、、または のいずれかである場合など
SUCCEEDEDFAILED、コマンド実行がターミナルになった場合はREJECTED、コマンド実行を削除できます。次のコマンドを実行して実行を削除します。ここで、execution-idは上記のget-command-executionオペレーションの出力の実行 ID です。aws iot delete-command-execution \ --execution-id"07e4b780-7eca-4ffd-b772-b76358da5542"get-command-executionCLI を使用して、コマンド実行がアカウントから削除されたことを確認できます。