共用方式為


了解 IoT Edge 裝置、模組及子裝置的延伸離線功能

適用於:IoT Edge 1.5 檢查標記 IoT Edge 1.5

重要

IoT Edge 1.5 LTS 是 支援的版本。 自 2024 年 11 月 12 日起,IoT Edge 1.4 LTS 已結束生命週期。 如果您是舊版,請參閱更新 IoT Edge

Azure IoT Edge 可讓您的 IoT Edge 裝置長時間離線運作,並讓下游裝置也離線運作。 在IoT Edge裝置連接到IoT中樞一次之後,該裝置和任何下游裝置可以繼續運行,即使只有間歇性或沒有網際網路連線。

運作方式

當 IoT Edge 裝置進入離線模式時,IoT Edge 中樞便會擔任三個角色:

  • 儲存任何上游的訊息,並儲存它們,直到裝置重新連線為止。
  • 代表IoT中樞驗證模組和下游裝置,讓它們能夠繼續運作。
  • 啟用通常通過IoT中樞的下游裝置之間的通訊。

下列範例示範 IoT Edge 場景如何在離線模式下運作:

  1. 設定裝置

    IoT Edge 裝置預設會啟用離線功能。 若要將這項功能擴充至其他裝置,請將下游裝置設定為信任並使用其指派的母裝置,並透過指派的母裝置作為網關路由裝置到雲端的通訊。

  2. 與 IoT 中樞進行同步處理

    安裝IoT Edge運行時間之後,請確定IoT Edge裝置至少上線一次,才能與IoT中樞同步。 在此同步處理期間,IoT Edge 裝置會取得指派給它之任何下游裝置的詳細數據。 IoT Edge 裝置也會安全地更新其本機快取,以啟用離線作業,並取得遙測訊息的本機儲存設定。

  3. 離線

    與IoT中樞中斷連線時,IoT Edge裝置、其已部署的模組,以及任何下游裝置都可以無限期地運作。 模組及下游裝置可在離線狀態時,透過向 IoT Edge 中樞進行驗證來啟動或重新啟動。 系結至IoT中樞上游的裝置遙測會儲存在本機。 模組或下游裝置之間的通訊則會透過直接方法或訊息維持。

  4. 重新連線並與 IoT 中樞再次進行同步處理

    與IoT Hub的連線恢復後,IoT Edge裝置會再次進行同步。 本機儲存的訊息會立即傳遞至IoT中樞,但傳遞取決於連線速度、IoT 中樞延遲和相關因素。 訊息的傳遞順序會與儲存訊息的順序相同。

    模組和裝置的期望屬性和報告屬性之間的任何差異都會進行協調。 IoT Edge 裝置會更新任何對其受指派下游裝置集合進行的變更。

限制

IoT Edge 裝置及其指派的下游裝置可以在初始的一次性同步處理之後無限期離機運作。不過,訊息記憶體取決於 存留時間 (TTL) 設定 和可用的磁碟空間。

每當部署狀態變更時,裝置的 EdgeAgent 會更新其報告的屬性,例如新的或失敗的部署。 當裝置離線時,EdgeAgent 無法向 Azure 入口網站報告狀態。 因此,當IoT Edge裝置沒有因特網連線時,Azure 入口網站中的裝置狀態可以保持 200 OK

設定父裝置和子裝置

根據預設,父裝置最多可以有 100 個子裝置。 在edgeHub模組中設定 MaxConnectedClients 環境變數,以變更此限制。 子裝置只有一個父裝置。

注意

下游裝置會將數據直接傳送至因特網或閘道裝置(已啟用IoT Edge或未啟用IoT Edge)。 子裝置可以是巢狀拓撲中的下游裝置或閘道裝置。

下游裝置可以是註冊至相同 IoT 中樞的任何裝置、IoT Edge 或非 IoT Edge。

如需在 IoT Edge 裝置與 IoT 裝置之間建立父子關聯的更多詳細資訊,請參閱驗證下游裝置至 Azure IoT 中樞。 對稱金鑰、自我簽署 X.509 和 CA 簽署的 X.509 章節示範了如何在建立裝置時使用 Azure 入口網站和 Azure CLI 來定義父子關聯性。 針對現有的裝置,請在父裝置或子裝置的 Azure 入口網站中,從裝置詳細數據頁面宣告關聯性。

如需在兩個 IoT Edge 裝置之間建立父子關聯的更多詳細資訊,請參閱將下游 IoT Edge 裝置連線到 Azure IoT Edge 閘道

將父裝置設定為閘道

將父系/子系關聯性視為透明閘道,其中子裝置在IoT中樞有自己的身分識別,但會透過其父系透過雲端進行通訊。 為了安全通訊,子裝置必須確認父裝置是否來自受信任的來源。 否則,第三方可能會設定惡意的裝置來冒充父裝置並攔截通訊。

下列文章將詳細描述建立此信任關係的其中一種方式:

指定 DNS 伺服器

若要改善健全性,請指定您環境中所使用的 DNS 伺服器位址。 若要設定 IoT Edge 的 DNS 伺服器,請參閱疑難排解文章中的 Edge 代理程式模組報告「空白的組態檔」,且裝置上未啟動任何模組的解決方式。

選擇性的離線設定

如果您的裝置離線,IoT Edge 父裝置會儲存所有裝置到雲端的訊息,直到連線重新建立為止。 IoT Edge 中樞模組會管理儲存和轉送離線訊息。

對於長時間離線的裝置,請設定兩個 IoT Edge 中樞選項來優化效能:

  • 增加 存留時間 設定,讓IoT Edge中樞會保留訊息,直到您的裝置重新連線為止。
  • 為訊息記憶體新增更多磁碟空間。

存留時間

存留時間設定是訊息在到期前等待傳遞的時間(以秒為單位)。 默認值為 7,200 秒(兩小時)。 最大值受限於整數變數的最大值,約為20億。

此設定是 IoT Edge 中樞在模組雙胞胎中儲存的所需屬性。 在 Azure 入口網站中或直接在部署指令清單中設定它。

"$edgeHub": {
    "properties.desired": {
        "schemaVersion": "1.1",
        "routes": {},
        "storeAndForwardConfiguration": {
            "timeToLiveSecs": 7200
        }
    }
}

系統模組的主機儲存

根據預設,IoT Edge 中樞會將訊息和模塊狀態儲存在其本機容器文件系統中。 為了獲得更佳的可靠性,特別是離線時,將記憶體儲存在主機 IoT Edge 裝置上。 如需詳細資訊,請參閱提供模組存取裝置本機儲存體的權限

下一步

深入了解如何為您的父裝置/子裝置連線設定透明閘道: