本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
離線受管整合中樞
Hub SDK 離職程序概觀
中樞移出程序會從 AWS 雲端 管理系統中移除中樞。當雲端傳送 DeleteManagedThing 請求時,程序會完成兩個主要目標:
裝置端動作:
重設中樞的內部狀態
刪除所有本機儲存的資料
準備裝置以供未來重新加入
雲端動作:
移除與中樞相關聯的所有雲端資源
與上一個帳戶完全中斷連線
客戶通常會在下列情況下啟動中樞離職:
變更中樞的關聯帳戶
使用新裝置取代現有的中樞
此程序可確保中樞組態之間的乾淨、安全轉換,實現無縫的裝置管理和帳戶彈性。
先決條件
-
您必須擁有已加入的中樞。如需說明,請參閱 Hub 加入設定。
-
在位於 /data/aws/iotmi/config/ 的
iotmi_config.json檔案中,確認iot_provisioning_state顯示PROVISIONED。 -
確認 中參考的永久憑證和金鑰
iotmi_config.json存在於其指定的路徑中。 -
確定 HubOnboarding、Agent、Provisioner 和 MQTT 代理已正確設定並執行。
-
確認集線器沒有子裝置。使用 DeleteManagedThing API 移除所有子裝置再繼續。
Hub SDK 離職程序
請依照下列步驟將中樞移出:
擷取 hub_managed_thing ID
iotmi_config.json 檔案用於存放受管整合中樞的受管物件 ID。此識別符是重要資訊,可讓中樞與 AWS IoT 受管整合服務通訊。受管物件 ID 會存放在 JSON 檔案的 rw (讀寫) 區段的 managed_thing_id 欄位下。這在下列範例組態中可見:
{ "ro": { "iot_provisioning_method": "FLEET_PROVISIONING", "iot_claim_cert_path": "PATH", "iot_claim_pk_path": "PATH", "UPC": "UPC", "sh_endpoint_url": "ENDPOINT_URL", "SN": "SN", "fp_template_name": "TEMPLATENAME" }, "rw": { "iot_provisioning_state": "PROVISIONED", "client_id": "ID", "managed_thing_id": "ID", "iot_permanent_cert_path": "CERT_PATH", "iot_permanent_pk_path": "KEY", "metadata": { "last_updated_epoch_time": 1747766125 } } }
將命令傳送至離職中樞
使用您的帳戶登入資料,並使用上一節managed_thing_id擷取的 執行 命令:
aws iot-managed-integrations delete-managed-thing \ --identifierHUB_MANAGED_THING_ID
確認中樞已離職
使用您的帳戶登入資料,並使用上一節managed_thing_id擷取的 執行 命令:
aws iot-managed-integrations get-managed-thing \ --identifierHUB_MANAGED_THING_ID
成功和失敗案例
成功案例
如果移出中樞的命令成功,預期會有下列範例回應:
{ "Message" : "Managed Thing resource not found." }
此外,如果中樞離機命令成功,iotmi_config.json則會觀察下列範例。確認 rw 區段僅包含 iot_provisioning_state 和選用的中繼資料。中繼資料不存在是可接受的。 iot_provisioning_state 必須是 NOT_PROVISIONED。
{ "ro": { "iot_provisioning_method": "FLEET_PROVISIONING", "iot_claim_cert_path": "PATH", "iot_claim_pk_path": "PATH", "UPC": "1234567890101", "sh_endpoint_url": "ENDPOINT_URL", "SN": "1234567890101", "fp_template_name": "test-template" }, "rw": { "iot_provisioning_state": "NOT_PROVISIONED", "metadata": { "last_updated_epoch_time": 1747766125 } } }
失敗案例
如果移出中樞的命令失敗,預期會有下列範例回應:
{ "Arn" : "ARN", "CreatedAt" : 1.748968266655E9, "Id" : "ID", "ProvisioningStatus" : "DELETE_IN_PROGRESS", "Role" : "CONTROLLER", "SerialNumber" : "SERIAL_NO", "Tags" : { }, "UniversalProductCode" : "UPC", "UpdatedAt" : 1.748968272107E9 }
{ "ro": { "iot_provisioning_method": "FLEET_PROVISIONING", "iot_claim_cert_path": "PATH", "iot_claim_pk_path": "PATH", "UPC": "123456789101", "sh_endpoint_url": "ENDPOINT_URL", "SN": "123456789101", "fp_template_name": "test-template" }, "rw": { "iot_provisioning_state": "PROVISIONED", "client_id": "ID", "managed_thing_id": "ID", "iot_permanent_cert_path": "PATH", "iot_permanent_pk_path": "PATH", "metadata": { "last_updated_epoch_time": 1747766125 } } }
(選用) 卸任 Hub SDK 之後
重要
下列案例列出在卸任 Hub SDK 失敗後要採取的選用動作,或者如果您想要在卸任後重新加入您的中樞。
- 重新加入
-
如果離職成功,請依照步驟 3:建立受管物件 (機群佈建) 和其餘的加入程序來加入 Hub SDK。
- Hub 復原
-
- 裝置中樞離職成功且雲端離職失敗
-
如果 GetManagedThing API 呼叫未傳回
Managed Thing resource not found訊息,但檔案已iotmi_config.json離線。請參閱範例 json 檔案的成功案例。若要從此案例中復原,請參閱強制刪除。
- 裝置中樞離職失敗
-
當檔案
iotmi_config.json未正確離職時,就會發生這種情況。請參閱範例 json 檔案的失敗案例。若要從此案例中復原,請參閱強制刪除。如果
iotmi_config.json仍未停止運作,則必須重設集線器。 - 裝置中樞離職和雲端離職失敗
-
在此案例中,
iotmi_config.json仍未停止運作,且中樞狀態為ACTIVATED、 或DISCOVERED。若要從此案例復原,請參閱強制刪除。如果強制刪除失敗,或
iotmi_config.json仍未停止運作,則必須重設集線器。 - 中樞離線,中樞狀態為 DELETE_IN_PROGRESS
-
在此案例中,中樞離線,雲端會收到離職命令。
若要從此案例中復原,請參閱強制刪除。
- 強制刪除
-
若要刪除沒有成功裝置中樞離職的雲端資源,請遵循下列步驟。此操作可能會導致雲端和裝置狀態不一致,進而可能導致未來操作發生問題。
使用中樞的
managed_thing_id和 強制參數呼叫 DeleteManagedThing API:aws iot-managed-integrations delete-managed-thing \ --identifierHUB_MANAGED_THING_ID\ --force接著,呼叫 GetManagedThing API 並確認其傳回
Managed Thing resource not found。這會確認雲端資源已刪除。注意
不建議使用此方法,因為它可能會導致雲端和裝置狀態之間的不一致。一般而言,在嘗試刪除雲端資源之前,最好確保裝置中樞順利移出。