共用方式為


IoT 中樞診斷的裝置更新概觀

IoT 中樞的裝置更新有數個功能,可協助您診斷和疑難解答裝置端錯誤。 隨著 v0.8.0 代理程式的發行,有兩個可用的診斷功能:

  • 部署錯誤碼 可以直接在裝置更新使用者介面的最新預覽版本中檢視

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

UI 中的部署錯誤碼

當裝置向裝置更新服務回報部署失敗時,裝置更新使用者介面會顯示裝置的報告內容 resultCode,並且會在使用者介面中顯示 extendedResultCode。 使用下列步驟來檢視這些程式代碼:

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

  2. 選取 [更新 ],然後流覽至 [ 群組和部署] 索引 卷標。

  3. 選取具有使用中部署的群組名稱,以取得 [ 群組詳細數據 ] 頁面。

  4. 在 [ 裝置] 清單中 選取任何裝置名稱,以開啟裝置詳細數據面板。 您可以在這裡看到裝置回報的結果碼。

  5. 裝置更新參考代理程式遵循結果碼字段的標準 HTTP 狀態代碼慣例(例如,“200” 表示成功)。 如需如何剖析結果碼的詳細資訊,請參閱 裝置更新用戶端錯誤碼

    備註

    如果您已修改裝置更新代理程式來報告自定義的結果碼,數值代碼仍會傳遞至 Device Update 用戶介面。 然後,您可以參考您所建立的任何文件來剖析這些數值代碼。

遠程記錄收集

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

裝置更新的遠端記錄收集是服務驅動的作業型功能。 若要利用記錄收集,裝置只需要能夠實作診斷介面和組態檔,而且能夠透過 SDK 將檔案上傳至 Azure Blob 記憶體。

從高階而言,記錄收集功能的運作方式如下:

  1. 使用者會使用 Device Update 使用者介面或 API 建立新的記錄作業,其目標最多為 100 個已實作診斷介面的裝置。

  2. 裝置更新服務會使用診斷介面,將記錄收集開始訊息傳送至目標裝置。 此啟動訊息包含日誌作業 ID,以及上傳至相關聯 Azure 儲存帳戶的 SAS 令牌。

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

  4. 然後,裝置更新代理程式會將作業的狀態( 成功失敗)回報給服務,包括記錄作業標識碼、ResultCode 和 ExtendedResultCode。 如果裝置更新代理程式失敗記錄作業,它會自動嘗試重試三次,只向服務回報最終狀態。

  5. 一旦所有目標裝置回報其終端機狀態回到裝置更新服務之後,裝置更新服務會將記錄作業標示為 [成功] 或 [失敗]。 成功的記錄作業表示所有目標裝置都已成功完成記錄作業。 失敗的記錄作業表示至少有一個目標裝置失敗記錄作業。

    備註

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

後續步驟

瞭解如何使用裝置更新的遠端記錄收集功能: 使用IoT中樞裝置更新從裝置遠端收集診斷記錄