例: コマンドを使用して車両ステアリングモードを制御する (AWS CLI) - AWS IoT FleetWise

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

例: コマンドを使用して車両ステアリングモードを制御する (AWS CLI)

重要

現在、特定の AWS IoT FleetWise Word 機能へのアクセスはゲートされています。詳細については、「AWSAWS IoT FleetWise でのリージョンと機能の可用性」を参照してください。

次の例は、 を使用してリモートコマンド機能を使用する方法を示しています AWS CLI。この例では、ターゲットデバイスとして AWS IoT FleetWise 車両を使用して、ステアリングモードをリモートで制御するコマンドを送信する方法を示します。

車両ステアリングモードの概要の例

この例では、次の操作を行います。

  1. を使用して オペレーションのコマンドリソースを作成しcreate-command AWS CLI 、車両のステアリングモードを変更します。

  2. を使用して、コマンドが作成された時刻や最後に更新された時刻など、コマンドに関する情報を取得しますget-command AWS CLI。

  3. ステアリングモードを必須パラメータとする を使用してコマンドstart-command-execution AWS CLI を車両に送信します。このパラメータはデバイスで実行されます。

  4. を使用してコマンド実行の結果を取得しますget-command-execution AWS CLI。実行が完了した日時を確認し、実行結果やコマンドの実行完了にかかった時間などの追加の詳細を取得できます。

  5. 使用しなくなったコマンドとコマンド実行を削除して、クリーンアップアクティビティを実行します。

前提条件

この例を実行する前に:

  • 車両を AWS IoT レジストリの AWS IoT モノ AWS IoT FleetWise としてプロビジョニングします。また、モノに証明書を追加してアクティブ化し、モノにポリシーをアタッチする必要があります。その後、デバイスはクラウドに接続し、リモートコマンドを実行できます。詳細については、「車両のプロビジョニング」を参照してください。

  • 「」に示すように、リモートコマンドを使用して の Word オペレーションを実行するアクセス許可を付与する IAM IAM ユーザーと API ポリシーを作成しますリモートコマンドを使用するためのIAMポリシー

リモートコマンドを使用するためのIAMポリシー

次の表は、リモートコマンド機能のすべてのコントロールプレーンおよびデータプレーンの IAM オペレーションへのアクセスを許可する API ポリシーの例を示しています。アプリケーションのユーザーは、表に示すように、すべてのリモートコマンドの API オペレーションを実行するアクセス許可を持ちます。

API オペレーション
API アクション コントロール/データプレーン プロトコル 説明 リソース
CreateCommand コントロールプレーン HTTP コマンドリソースを作成します。
  • コマンド

GetCommand コントロールプレーン HTTP コマンドに関する情報を取得します。
  • コマンド

UpdateCommand コントロールプレーン HTTP コマンドまたは に関する情報を更新して非推奨にします。
  • コマンド

ListCommands コントロールプレーン HTTP アカウントのコマンドを一覧表示します。
  • コマンド

DeleteCommand コントロールプレーン HTTP コマンドを削除します。
  • コマンド

StartCommandExecution データプレーン HTTP コマンドの実行を開始します。
  • コマンド

  • thing

UpdateCommandExecution データプレーン MQTT コマンド実行を更新する
  • コマンド

  • thing

GetCommandExecution コントロールプレーン HTTP コマンド実行に関する情報を取得します。
  • コマンド

  • thing

ListCommandExecutions コントロールプレーン HTTP アカウントのコマンド実行を一覧表示します。
  • コマンド

  • thing

DeleteCommandExecution コントロールプレーン HTTP コマンド実行を削除します。
  • コマンド

  • thing

この例では、次のように置き換えます。

  • region など AWS リージョン、 で を使用しますap-south-1

  • account-id など、 を 番号に置き換えます AWS アカウント 57EXAMPLE833

  • command-idcommand-id1、および を LockDoorや などの一意のコマンド識別子command-id2に置き換えますTurnOffAC

  • thing-name などの AWS IoT モノの名前に置き換えますmy_car

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

AWS IoT コマンドを実行する (AWS CLI)

以下は、 を使用してリモートコマンドオペレーション AWS CLI を実行し、車両のステアリングモードを変更する方法を示しています。

  1. ステアリングモードオペレーションのコマンドリソースを作成する

    create-command CLI を使用してデバイスに送信するコマンドを作成します。この例では、以下を指定します。

    • command-id としての TurnOffSteeringMode

    • role-arn"arn:aws:iam:accountId:role/FwCommandExecutionRole" として指定role-arnする必要があります。これは、車両でコマンドを作成および実行するアクセス許可を付与する IAM ロールです。詳細については、「を使用してリモートコマンドのペイロードを生成する AWS IoT Device Management アクセス許可を付与する AWS IoT FleetWise」を参照してください。

    • display-nameステアリングモードをオフにする"

    • namespace は である必要があります AWS-IoT-FleetWise

    • mandatory-parameters は名前と値のペア、 nameは「」$actuatorPath.Vehicle.Chassis.SteeringWheel.TurnOffSteeringMode「 としての と defaultValue { "S": "true" }

      注記

      必須パラメータを指定せずにコマンドを作成することもできます。次に、start-command-executionCLI を使用してコマンドを実行するときに使用するパラメータを指定する必要があります。例については、リモートコマンドの使用シナリオを参照してください。

    重要

    AWS-IoT-FleetWise 名前空間を使用する場合は、 の一部として指定された Nameフィールドが$actuatorPath.プレフィックスmandatory-parametersを使用し、 Valueフィールドが文字列データ型を使用していることを確認する必要があります。

    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" } } ]'

    次の出力は、 CLI からのレスポンスの例を示しています。ここで、 ap-south-1123456789012は AWS リージョン と AWS アカウント ID の例です。

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

    このコマンドの使用に関するその他の例については、「」を参照してくださいコマンドリソースを作成する

  2. コマンドに関する情報を取得する

    次のコマンドを実行して、コマンドに関する情報を取得します。ここで、 command-idは上記の create-commandオペレーションの出力のコマンド ID です。

    注記

    複数のコマンドを作成する場合は、API ListCommands を使用してアカウント内のすべてのコマンドを一覧表示し、API GetCommand を使用して特定のコマンドに関する追加情報を取得できます。詳細については、「アカウントのコマンドを一覧表示する」を参照してください。

    aws iot get-command --command-id TurnOffSteeringMode

    このコマンドを実行すると、次のレスポンスが生成されます。コマンドが作成された時刻と最終更新日時、指定したパラメータ、およびコマンドをデバイスで実行できるかどうかが表示されます。

    { "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 }

    このコマンドの使用に関するその他の例については、「」を参照してくださいコマンドに関する情報を取得する

  3. コマンドの実行を開始する

    次のコマンドを実行してコマンドの実行を開始します。ここで、 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 の使用に関するその他の例については、「」を参照してくださいリモートコマンドを送信する

  4. コマンド実行に関する情報を取得する

    次のコマンドを実行して、ターゲットデバイスで実行したコマンドに関する情報を取得します。上から取得した start-command-executionオペレーションの出力としてexecution-id取得した と、ターゲットとするデバイスの ARN target-arnである を指定します。

    注記
    • 最新のステータス情報を取得するには、デバイスが MQTT Word を使用したコマンドの UpdateCommandExecution MQTTAPI 予約レスポンストピックに更新されたステータス情報を公開している必要があります。詳細については、「コマンド実行結果の更新」を参照してください。

    • 複数のコマンド実行を開始する場合は、API ListCommandExecutions を使用してアカウント内のすべてのコマンド実行を一覧表示し、API GetCommandExecution を使用して特定の実行に関する追加情報を取得できます。詳細については、「アカウントのコマンド実行を一覧表示する」を参照してください。

    aws iot get-command-execution \ --execution-id <"07e4b780-7eca-4ffd-b772-b76358da5542"> \ --target-arn arn:aws:iot:<region>:<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" } }' }

クリーンアップ

これで、デバイスでコマンドを作成して実行したので、このコマンドを使用する予定がない場合は、削除できます。進行中の保留中のコマンド実行は、削除リクエストの影響を受けずに引き続き実行されます。

注記

または、コマンドが古い場合は非推奨にし、後でターゲットデバイスで実行するために必要になる場合もあります。

  1. (オプション) コマンドリソースを非推奨にする

    次のコマンドを実行してコマンドを非推奨にします。ここで、 command-idは、上記の get-commandオペレーションの出力のコマンド ID です。

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

    このコマンドを実行すると、コマンドが廃止されたことを示す出力が返されます。CLI を使用してコマンドを復元することもできます。

    注記

    CLI update-command を使用して、コマンドの表示名と説明を更新することもできます。詳細については、「コマンドリソースを更新または廃止する」を参照してください。

    { "commandId": "TurnOffSteeringMode", "deprecated": true, "lastUpdatedAt": "2024-05-09T23:16:51.370000-07:00" }
  2. コマンドを削除する

    次のコマンドを実行して、 で指定された コマンドを削除しますcommand-id

    注記

    削除アクションは永続的であり、元に戻すことはできません。

    aws iot delete-command --command-id TurnOffSteeringMode

    削除リクエストが成功すると、コマンドを非推奨にしたか、いつ非推奨にしたかに応じて、202 または 204 statusCodeのHTTPが表示されます。詳細と例については、「コマンドリソースを削除する」を参照してください。

    CLI get-command を使用して、コマンドがアカウントから削除されたことを確認できます。

  3. (オプション) コマンド実行を削除する

    デフォルトでは、すべてのコマンド実行は、作成した日から 6 か月後に削除されます。この情報は、API の GetCommandExecution timeToLiveパラメータを使用して表示できます。

    または、実行ステータスが 、、または のいずれかである場合などSUCCEEDEDFAILED、コマンド実行がターミナルになった場合はREJECTED、コマンド実行を削除できます。次のコマンドを実行して実行を削除します。ここで、 execution-idは上記の get-command-executionオペレーションの出力にある実行 ID です。

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

    get-command-execution CLI を使用して、コマンドの実行がアカウントから削除されたことを確認できます。