翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
例: コマンドを使用して車両ステアリングモードを制御する (AWS CLI)
重要
現在、特定の AWS IoT FleetWise Word 機能へのアクセスはゲートされています。詳細については、「AWSAWS IoT FleetWise でのリージョンと機能の可用性」を参照してください。
次の例は、 を使用してリモートコマンド機能を使用する方法を示しています AWS CLI。この例では、ターゲットデバイスとして AWS IoT FleetWise 車両を使用して、ステアリングモードをリモートで制御するコマンドを送信する方法を示します。
車両ステアリングモードの概要の例
この例では、次の操作を行います。
-
を使用して オペレーションのコマンドリソースを作成し
create-command
AWS CLI 、車両のステアリングモードを変更します。 -
を使用して、コマンドが作成された時刻や最後に更新された時刻など、コマンドに関する情報を取得します
get-command
AWS CLI。 -
ステアリングモードを必須パラメータとする を使用してコマンド
start-command-execution
AWS CLI を車両に送信します。このパラメータはデバイスで実行されます。 -
を使用してコマンド実行の結果を取得します
get-command-execution
AWS CLI。実行が完了した日時を確認し、実行結果やコマンドの実行完了にかかった時間などの追加の詳細を取得できます。 -
使用しなくなったコマンドとコマンド実行を削除して、クリーンアップアクティビティを実行します。
前提条件
この例を実行する前に:
-
車両を AWS IoT レジストリの AWS IoT モノ AWS IoT FleetWise としてプロビジョニングします。また、モノに証明書を追加してアクティブ化し、モノにポリシーをアタッチする必要があります。その後、デバイスはクラウドに接続し、リモートコマンドを実行できます。詳細については、「車両のプロビジョニング」を参照してください。
-
「」に示すように、リモートコマンドを使用して の Word オペレーションを実行するアクセス許可を付与する IAM IAM ユーザーと API ポリシーを作成しますリモートコマンドを使用するためのIAMポリシー。
リモートコマンドを使用するためのIAMポリシー
次の表は、リモートコマンド機能のすべてのコントロールプレーンおよびデータプレーンの IAM オペレーションへのアクセスを許可する API ポリシーの例を示しています。アプリケーションのユーザーは、表に示すように、すべてのリモートコマンドの API オペレーションを実行するアクセス許可を持ちます。
API アクション | コントロール/データプレーン | プロトコル | 説明 | リソース |
---|---|---|---|---|
CreateCommand |
コントロールプレーン | HTTP | コマンドリソースを作成します。 |
|
GetCommand |
コントロールプレーン | HTTP | コマンドに関する情報を取得します。 |
|
UpdateCommand |
コントロールプレーン | HTTP | コマンドまたは に関する情報を更新して非推奨にします。 |
|
ListCommands |
コントロールプレーン | HTTP | アカウントのコマンドを一覧表示します。 |
|
DeleteCommand |
コントロールプレーン | HTTP | コマンドを削除します。 |
|
StartCommandExecution |
データプレーン | HTTP | コマンドの実行を開始します。 |
|
UpdateCommandExecution |
データプレーン | MQTT | コマンド実行を更新する |
|
GetCommandExecution |
コントロールプレーン | HTTP | コマンド実行に関する情報を取得します。 |
|
ListCommandExecutions |
コントロールプレーン | HTTP | アカウントのコマンド実行を一覧表示します。 |
|
DeleteCommandExecution |
コントロールプレーン | HTTP | コマンド実行を削除します。 |
|
この例では、次のように置き換えます。
-
など AWS リージョン、 で を使用しますregion
ap-south-1
。 -
など、 を 番号に置き換えます AWS アカウントaccount-id
57EXAMPLE833
。 -
、command-id
、および をcommand-id1
LockDoor
や などの一意のコマンド識別子
に置き換えますcommand-id2
TurnOffAC
。 -
などの AWS IoT モノの名前に置き換えますthing-name
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 を実行し、車両のステアリングモードを変更する方法を示しています。
-
ステアリングモードオペレーションのコマンドリソースを作成する
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-execution
CLI を使用してコマンドを実行するときに使用するパラメータを指定する必要があります。例については、リモートコマンドの使用シナリオを参照してください。
重要
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-1
と123456789012
は AWS リージョン と AWS アカウント ID の例です。{ "commandId": "TurnOffSteeringMode", "commandArn": "arn:aws:iot:ap-south-1:123456789012:command/TurnOffSteeringMode" }
このコマンドの使用に関するその他の例については、「」を参照してくださいコマンドリソースを作成する。
-
-
コマンドに関する情報を取得する
次のコマンドを実行して、コマンドに関する情報を取得します。ここで、
command-id
は上記のcreate-command
オペレーションの出力のコマンド ID です。注記
複数のコマンドを作成する場合は、API
ListCommands
を使用してアカウント内のすべてのコマンドを一覧表示し、APIGetCommand
を使用して特定のコマンドに関する追加情報を取得できます。詳細については、「アカウントのコマンドを一覧表示する」を参照してください。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 }
このコマンドの使用に関するその他の例については、「」を参照してくださいコマンドに関する情報を取得する。
-
コマンドの実行を開始する
次のコマンドを実行してコマンドの実行を開始します。ここで、
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 の使用に関するその他の例については、「」を参照してくださいリモートコマンドを送信する。
-
コマンド実行に関する情報を取得する
次のコマンドを実行して、ターゲットデバイスで実行したコマンドに関する情報を取得します。上から取得した
start-command-execution
オペレーションの出力としてexecution-id
取得した と、ターゲットとするデバイスの ARNtarget-arn
である を指定します。注記
-
最新のステータス情報を取得するには、デバイスが MQTT Word を使用したコマンドの
UpdateCommandExecution
MQTTAPI 予約レスポンストピックに更新されたステータス情報を公開している必要があります。詳細については、「コマンド実行結果の更新」を参照してください。 -
複数のコマンド実行を開始する場合は、API
ListCommandExecutions
を使用してアカウント内のすべてのコマンド実行を一覧表示し、APIGetCommandExecution
を使用して特定の実行に関する追加情報を取得できます。詳細については、「アカウントのコマンド実行を一覧表示する」を参照してください。
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" } }' }
-
クリーンアップ
これで、デバイスでコマンドを作成して実行したので、このコマンドを使用する予定がない場合は、削除できます。進行中の保留中のコマンド実行は、削除リクエストの影響を受けずに引き続き実行されます。
注記
または、コマンドが古い場合は非推奨にし、後でターゲットデバイスで実行するために必要になる場合もあります。
-
(オプション) コマンドリソースを非推奨にする
次のコマンドを実行してコマンドを非推奨にします。ここで、
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" }
-
コマンドを削除する
次のコマンドを実行して、 で指定された コマンドを削除します
command-id
。注記
削除アクションは永続的であり、元に戻すことはできません。
aws iot delete-command --command-id
TurnOffSteeringMode
削除リクエストが成功すると、コマンドを非推奨にしたか、いつ非推奨にしたかに応じて、202 または 204
statusCode
のHTTPが表示されます。詳細と例については、「コマンドリソースを削除する」を参照してください。CLI
get-command
を使用して、コマンドがアカウントから削除されたことを確認できます。 -
(オプション) コマンド実行を削除する
デフォルトでは、すべてのコマンド実行は、作成した日から 6 か月後に削除されます。この情報は、API の
GetCommandExecution
timeToLive
パラメータを使用して表示できます。または、実行ステータスが 、、または のいずれかである場合など
SUCCEEDED
FAILED
、コマンド実行がターミナルになった場合はREJECTED
、コマンド実行を削除できます。次のコマンドを実行して実行を削除します。ここで、execution-id
は上記のget-command-execution
オペレーションの出力にある実行 ID です。aws iot delete-command-execution \ --execution-id
"07e4b780-7eca-4ffd-b772-b76358da5542"
get-command-execution
CLI を使用して、コマンドの実行がアカウントから削除されたことを確認できます。