建立和管理命令 - AWS IoT FleetWise

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

建立和管理命令

重要

對特定 AWS IoT FleetWise 功能的存取目前受到鎖定。如需詳細資訊,請參閱AWSAWS IoT FleetWise 中的區域和功能可用性

您可以設定可重複使用的遠端動作,或傳送一次性的立即指示至您的裝置。使用此功能時,您可以指定裝置可以近乎即時執行的指示。命令可讓您為目標車輛設定可重複使用的遠端動作。建立命令之後,您可以啟動以特定車輛為目標的命令執行。

本主題說明如何使用 AWS IoT Core API 或 建立和管理命令資源 AWS CLI。它說明如何在命令資源上執行下列動作。

建立命令資源

您可以使用CreateCommand AWS IoT Core 控制平面 API 操作或 AWS IoT FleetWise 主控台來建立命令。

您可以使用 AWS IoT FleetWise 主控台來建立命令。

建立命令
  1. 開啟 AWS IoT FleetWise 主控台

  2. 在導覽窗格中,選擇命令

  3. 選擇建立命令

  4. 指定唯一的命令 ID,協助您識別要在車輛上執行的命令。

  5. (選用) 指定選用的顯示名稱和描述。

  6. (選用) 選取致動器和預設參數值。參數指定目標車輛在收到命令時可執行的動作。如果您未新增參數,則需要在執行 命令時提供參數。

  7. 選擇授予許可以產生命令承載的 IAM 角色。請參閱控制存取

  8. 選擇建立命令

下列範例示範如何使用 參數建立命令。

建立命令時的考量事項

當您在 中建立命令時 AWS IoT FleetWise:

  • 您必須指定 roleArn,以授予在您的車輛上建立和執行命令的許可。如需範例政策的詳細資訊,包括啟用 KMS 金鑰的時間,請參閱 授予使用 產生命令承載的 AWS IoT Device Management 許可 AWS IoT FleetWise

  • 您必須指定 AWS-IoT-FleetWise做為命名空間。

  • 您可以略過 mandatory-parameters 欄位,並在執行時間指定它們。或者,您可以使用參數建立命令,並選擇性地為其指定預設值。如果您指定了預設值,則可以在執行時間使用這些值,或指定自己的值來覆寫這些值。如需這些其他範例,請參閱 命令使用案例

  • 您可以為 mandatory-parameters 欄位指定最多三個名稱/值對。不過,在車輛上執行 命令時,只接受一個名稱/值對,而 name 欄位必須使用完整名稱與$actuatorPath.字首。

  • command-id 取代為命令的唯一識別符。您可以使用 UUID、英數字元、"-" 和 "_"。

  • role-arn 取代為授予您建立和執行命令許可的 IAM 角色,例如 "arn:aws:iam:accountId:role/FwCommandExecutionRole"

  • (選用) 以易於使用的命令名稱取代 display-name,並以有意義的命令描述取代描述

  • mandatory-parameters物件的名稱取代為所建立命令的必要資訊。name 欄位是訊號目錄中定義為$actuatorPath.字首的完整名稱。例如, name可以是 $actuatorPath.Vehicle.Chassis.SteeringWheel.HandsOff.HandsOffSteeringModevalue也可以是指示轉向模式狀態的布林值,例如 {"B": false}

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 Resource Name)。

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

擷取命令的相關資訊

您可以使用GetCommand AWS IoT Core 控制平面 API 操作來擷取命令資源的相關資訊。

若要取得命令資源的相關資訊,請執行下列命令。將 command-id 取代為建立命令時使用的識別符。

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

GetCommand API 操作會傳回包含下列資訊的回應。

  • 命令的 ID 和 ARN (Amazon Resource Name)。

  • 命令建立和上次更新的日期和時間。

  • 命令狀態,指出它是否可以在車輛上執行。

  • 您在建立 命令時指定的任何參數。

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

列出您帳戶中的命令

您可以使用ListCommands AWS IoT Core 控制平面 API 操作來列出您建立之帳戶中的所有命令。

若要列出您帳戶中的命令,請執行下列命令。根據預設,API 會傳回為兩個命名空間建立的命令。若要篩選清單以僅顯示為 建立的命令 AWS IoT FleetWise,請執行下列命令。

注意

您也可以依遞增或遞減順序排序清單,或篩選清單,以僅顯示具有特定命令參數名稱的命令。

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

ListCommands API 操作會傳回包含下列資訊的回應。

  • 命令的 ID 和 ARN (Amazon Resource Name)。

  • 命令建立和上次更新的日期和時間。

  • 命令狀態,指出命令是否可以在車輛上執行。

更新或取代命令資源

您可以使用UpdateCommand AWS IoT Core 控制平面 API 操作或 AWS IoT FleetWise 主控台來更新命令資源。您可以更新命令的顯示名稱和描述。如果命令目前未使用,您也可以將其棄用。

注意

您無法修改執行 命令時要使用的命名空間資訊或參數。

更新命令

若要從主控台更新命令,請前往 AWS IoT FleetWise 主控台的命令頁面,並執行下列步驟。

  1. 選擇您要更新的命令,然後選擇編輯

  2. 編輯命令詳細資訊,然後選擇儲存變更

棄用命令

若要從主控台棄用命令,請前往 AWS IoT FleetWise 主控台的命令頁面,並執行下列步驟。

  1. 選擇您要棄用的命令,然後選擇棄用

  2. 確認棄用,然後選擇棄用

更新命令

若要更新命令資源,請執行下列命令。將 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 Resource Name)。

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

一旦命令已棄用,現有的命令執行將繼續在車輛上執行,直到變成終端機為止。若要執行任何新的命令執行,您必須使用 UpdateCommand API 還原命令,使其變成可用。如需有關棄用和還原命令及其考量事項的其他資訊,請參閱《 AWS IoT Core 開發人員指南》中的棄用命令資源

刪除命令資源

您可以使用DeleteCommand AWS IoT Core 控制平面 API 操作或 AWS IoT FleetWise 主控台來刪除命令資源。

注意

刪除動作為永久性動作,且無法還原。命令將從您的帳戶中永久移除。

若要從主控台刪除命令,請前往 AWS IoT FleetWise 主控台的命令頁面,並執行下列步驟。

  1. 選擇您要刪除的命令,然後選擇刪除

  2. 確認您想要刪除命令,然後選擇刪除

若要刪除命令資源,請執行下列命令。以您要刪除之命令的識別符取代 command-id。下列範例顯示如何刪除命令資源。

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

如果刪除請求成功:

  • 如果命令已棄用超過最大逾時 24 小時的持續時間,則會立即刪除命令,而且您會看到 HTTP statusCode 為 204。

  • 如果命令未棄用,或已棄用超過最大逾時的持續時間,則命令將處於 pending deletion 狀態,您會看到 HTTP statusCode 為 202。最長逾時 24 小時後,系統會自動從您的帳戶移除命令。