取代指令資源 - AWS IoT Core

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

取代指令資源

棄用命令以指出它們已過時且不應使用。例如,棄用不再主動維護的命令,或在建立具有相同 ID 但不同承載的較新命令時。

關鍵考量

取代命令時的重要考量:

  • 棄用命令並不會將其刪除。您可以使用命令的 ID 擷取命令,並將其還原以重複使用。

  • 嘗試在已棄用命令上啟動新執行會產生錯誤,防止使用過時的命令。

  • 若要執行已取代的命令,請先將其還原。還原之後,命令即可在目標裝置上定期使用和執行。

  • 如果您在執行進行時棄用命令,它們會繼續執行,直到完成為止。您仍然可以擷取執行狀態。

棄用命令資源 (主控台)

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

  1. 選擇您要棄用的命令,然後在動作下選擇棄用

  2. 確認您要棄用命令,然後選擇棄用

棄用命令資源 (CLI)

使用 CLI update-command 將命令標記為已棄用。您必須先棄用命令,才能刪除。若要使用已棄用的命令,請先將其還原。

aws iot update-command \ --command-id <command-id> \ --deprecated

例如,如果您已棄用在上述範例中更新的ACSwitch命令,下列程式碼會顯示執行命令的範例輸出。

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

檢查棄用時間和狀態

使用 GetCommand API 來判斷命令是否已棄用,以及上次棄用的時間。

aws iot get-command --command-id <turnOffAC>

此命令會產生包含命令資訊的回應,包括上次更新欄位的建立和取代時間戳記。這有助於判斷命令生命週期,以及是否要刪除或重複使用。以下顯示 turnOffAc命令的範例回應:

{ "commandId": "turnOffAC", "commandArn": "arn:aws:iot:us-east-1:123456789012:command/turnOffAC", "namespace": "AWS-IoT", "payload": { "content": "testPayload.json", "contentType": "application/json" }, "createdAt": "2024-03-23T00:50:10.095000-07:00", "lastUpdatedAt": "2024-05-09T23:16:51.370000-07:00", "deprecated": false }

還原命令資源

若要使用或傳送 ACSwitch命令至您的裝置,請先將其還原。

若要從主控台還原命令,請前往 AWS IoT 主控台的 Command Hub,選擇您要還原的命令,然後在動作下選擇還原

若要使用 AWS IoT Core API 或 還原命令 AWS CLI,請使用 UpdateCommand API 操作或 update-command CLI。下列程式碼顯示範例請求和回應。

aws iot update-command \ --command-id <command-id> --no-deprecated

下列程式碼顯示範例輸出。

{ "commandId": "ACSwitch", "deprecated": false, "lastUpdatedAt": "2024-05-09T23:17:21.954000-07:00" }