共用方式為


IoT 中樞裝置更新診斷概觀

IoT 中樞裝置更新中有數項功能可協助您診斷裝置端錯誤並進行疑難排解。 使用 v0.9.0 代理程式版本時,有三項診斷功能可供使用:

  • 您可以直接在裝置更新使用者介面中檢視部署錯誤碼

  • 遠端記錄收集可建立記錄作業,以指示目標裝置將其中的診斷記錄上傳至連結的 Azure Blob 儲存體帳戶

  • 代理程式檢查會在已註冊到裝置更新執行個體的裝置上執行驗證檢查,目標是診斷在連線 IoT 中樞中註冊,但未在裝置更新中顯示的裝置

UI 中的部署錯誤碼

若裝置向裝置更新服務回報部署失敗,則裝置更新使用者介面會在使用者介面中顯示裝置回報的 resultCodeextendedResultCode。 請按照下列步驟檢視這些程式碼:

  1. Azure 入口網站中,瀏覽至您的 IoT 中樞。

  2. 選取 [更新],然後瀏覽至 [群組與部署] 索引標籤

  3. 選取具有使用中部署的群組名稱,前往 [群組詳細資料] 頁面。

  4. 選取裝置清單中的任何一個裝置名稱,開啟裝置詳細資料面板, 在這裡可以看到裝置回報的結果碼。

  5. 裝置更新參考代理程式會遵循結果碼欄位的標準 HTTP 狀態碼慣例 (例如「200」表示成功)。 如需深入了解如何剖析結果碼,請參閱裝置更新用戶端錯誤碼頁面。

    注意

    如果您已將裝置更新代理程式修改為用於回報自訂的結果碼,數值代碼仍會傳遞至裝置更新使用者介面。 您之後可參考自己建立的文件以剖析這些數字代碼。

遠端記錄收集

如果需要更多裝置資訊才能診斷和疑難排解錯誤,可使用記錄收集功能指示目標裝置將其中的診斷記錄上傳至連結的 Azure Blob 儲存體帳戶。 您可以遵循從裝置遠端收集診斷記錄中的指示,開始使用此功能。

裝置更新的遠端記錄收集是服務導向的作業型功能, 裝置只需能夠實作診斷介面和設定檔,並透過 SDK 將檔案上傳至 Azure Blob 儲存體,就可以利用記錄收集功能。

記錄收集功能的運作方式大致如下:

  1. 使用者運用裝置更新使用者介面或 API 建立新的記錄作業,將最多 100 部已實作診斷介面的裝置設為目標。

  2. 裝置更新服務使用診斷介面將記錄收集啟動訊息傳送至目標裝置。 此啟動訊息包含記錄作業識別碼與 SAS 權杖,用於上傳至相關聯的 Azure 儲存體帳戶。

  3. 收到啟動訊息後,目標裝置的裝置更新代理程式會嘗試收集並上傳裝置代理程式設定檔所指定預先定義檔案路徑中的檔案。 裝置更新參考代理程式已預設為會上傳裝置更新代理程式診斷記錄 (aduc.log) 與 DO 代理程式診斷記錄 (「do-agent.log」)。

  4. 接下來,裝置更新代理程式會將作業狀態 (成功失敗) 回報給服務,包括記錄作業識別碼、ResultCode 與 ExtendedResultCode。 若裝置更新代理程式的記錄作業失敗,系統會自動重試三次,且只向服務回報最終狀態。

  5. 一旦所有目標裝置將其終端狀態回報給裝置更新服務,裝置更新服務便會將記錄作業標示為成功失敗。 成功的記錄作業表示所有目標裝置都已成功完成記錄作業, 失敗的記錄作業則表示至少有一部目標裝置的記錄作業失敗。

    注意

    由於目標裝置會平行執行記錄作業,因此即使部分目標裝置已成功上傳記錄,整體記錄作業仍可能會標示為失敗。 您可以透過使用者介面或 API 檢視記錄作業詳細資料,查看哪些裝置成功,哪些失敗。

代理程式檢查

當裝置在 IoT 中樞中註冊,但未在裝置更新執行個體中出現時,您可以使用代理程式檢查功能,來執行預先進行的驗證檢查,以協助您診斷基礎問題。 您可以透過遵循這些代理程式檢查指示,來開始使用這項功能。

代理程式檢查功能的運作方式大致如下:

  • 使用者向 IoT 中樞註冊裝置。 如果裝置回報的型號識別碼符合與適用於 IoT 中樞的裝置更新相容的那些型號識別碼,則使用者的連線裝置更新執行個體會自動向裝置更新註冊該裝置。

  • 為了讓裝置更新能夠正確管理裝置,裝置必須符合特定準則,您能夠使用代理程式檢查預先進行的驗證檢查來驗證這些準則。 如需這些準則的詳細資訊,請參閱這裡

  • 如果某裝置不符合所有這些準則,則裝置更新無法正確管理該裝置,且該裝置不會顯示在裝置更新介面或 API 回應中。 使用者可以使用代理程式檢查來尋找此裝置,並嘗試使用代理程式檢查來確認不符合的準則是哪一個。

  • 一旦使用者確認不符合的準則是哪一個後,使用者就可以修正該問題,然後裝置應會正確出現在裝置更新介面中。

下一步

瞭解如何使用裝置更新的遠端記錄收集和代理程式檢查功能: