共用方式為


了解已中斷連線裝置更新的支援 (預覽)

IoT Edge 裝置的 Microsoft 網內快取 (MCC) 模組可針對閘道後方的已中斷連線裝置啟用裝置更新。 在透明閘道案例中,一或多部裝置可以透過與 Azure IoT 中樞保持連線的單一閘道裝置傳遞訊息。 在這種情況下,子裝置可能沒有網際網路連線,或無法從網際網路下載內容。 MCC 模組可為 IoT 中樞裝置更新的客戶提供智慧型網路內快取功能。 快取可讓 IoT Edge 閘道後方的 Linux OS 裝置 (也稱為「下游」IoT 裝置) 以映像為基礎及以套件為基礎進行更新。 快取也有助於減少用於更新的頻寬。

注意

此資訊與一項預覽功能有關,可用於早期測試和在實際執行環境中使用。 完全支援此功能,但仍在開發中,在正式推出之前可能還有重大變更。

如果您不熟悉 IoT Edge 閘道,請深入了解如何使用 IoT Edge 裝置做為閘道

什麼是 Microsoft 網內快取

Microsoft 網內快取是針對 IoT 中樞裝置更新所發佈的智慧型透明內容快取,您也可以進行自訂,以快取其他來源 (如套件存放庫) 的內容。 Microsoft 網內快取屬於極非經常性快取,由傳遞最佳化用戶端所要求的確切檔案範圍用戶端要求預熱,不須預先植入內容。 下方的圖表和逐步描述會說明 Microsoft 網內快取在裝置更新基礎結構中的運作方式。

注意

此流程假設 IoT Edge 閘道具有網際網路連線能力。 針對下游 IoT Edge 閘道 (巢狀邊緣) 案例,內容傳遞網路 (CDN) 可視為裝載於父代 IoT Edge 閘道上的 MCC。

Diagram that demonstrates how the Microsoft Connected Cache module enables disconnected device update.

  1. Microsoft 網內快取會做為 IoT Edge 模組部署至內部部署閘道伺服器。

  2. IoT 中樞裝置更新用戶端會設定為從 Microsoft 網內快取下載內容,方式為使用 IoT 分葉裝置的裝置連接字串 GatewayHostName 屬性,透過在 IoT Edge 子裝置的 config.toml 中所設定的 parent_hostname。

  3. IoT 中樞裝置更新用戶端會從裝置更新服務接收下載命令,並從 Microsoft 網內快取 (而非 CDN) 要求更新內容。 Microsoft 網內快取預設會接聽 HTTP 連接埠 80,而傳遞最佳化用戶端會在連接埠 80 上提出內容要求,因此必須設定父系以接聽此連接埠。 目前僅支援 HTTP 通訊協定。

  4. Microsoft 網內快取伺服器會從 CDN 下載內容、植入儲存在磁碟上的本機快取,並將內容傳遞至裝置更新用戶端。

    注意

    使用套件型更新時,管理員會以必要的套件主機名稱設定 Microsoft 網內快取伺服器。

  5. 其他裝置更新用戶端針對相同更新內容的後續要求現在會來自快取,而 Microsoft 網內快取則不會針對相同內容向 CDN 提出要求。

支援具有父代/子系裝載案例的產業 IoT (IIoT)

產業 IoT (IIoT) 案例通常牽涉到多個 IoT Edge 閘道層級,只有最上層才能存取網際網路。 在此案例中,每個閘道都會裝載 Microsoft 網內快取服務,其設定為從其父閘道要求更新內容。

當子系 (或下游) IoT Edge 閘道向其父閘道提出更新內容的要求時,在連線到裝載 Microsoft 網內快取伺服器 (該伺服器具有網際網路存取權) 的最上層 IoT Edge 閘道之前,此要求會視需求在多個層級重複。 系統會透過連線至網際網路的伺服器向 CDN 要求內容,此時內容會傳遞回原本要求內容的子系 IoT Edge 閘道。 內容會儲存在磁碟中各個層級。

要求存取預覽

Microsoft 網內快取 IoT Edge 模組會針對使用 IoT 中樞裝置更新部署解決方案的客戶,以預覽的形式發行。 唯有獲得邀請的使用者才能存取預覽版。 若您想要存取模組,可以要求存取適用於 IoT 中樞裝置更新的 Microsoft 網內快取預覽版,我們即會提供您所要求的資訊。

Microsoft 網內快取模組組態

Microsoft 網內快取會部署至 Azure IoT Edge 閘道,以做為 IoT Edge 模組。 與其他 IoT Edge 模組一樣,會使用環境變數和容器建立選項來設定 MCC 模組。 本節定義環境變數和容器建立選項,需要有這些項目才能成功部署 MCC 模組,以供 IoT 中樞裝置更新使用。

Microsoft 網內快取模組沒有命名需求,因為沒有其他模組或服務互動會仰賴 MCC 模組的名稱來進行通訊。 此外,Microsoft 網內快取伺服器的父子關聯性未相依於此模組名稱,而是 IoT Edge 閘道的 FQDN 或 IP 位址。

模組環境變數

使用 Microsoft 網內快取模組環境變數,以將基本模組身分識別資訊和功能模組設定傳遞給容器。

變數名稱 值格式 描述
CUSTOMER_ID Azure 訂用帳戶識別碼 GUID 必要

此值是客戶的識別碼,可為傳遞最佳化服務提供快取節點的安全驗證。
CACHE_NODE_ID 快取節點識別碼 GUID 必要

可唯一識別傳遞最佳化服務的 MCC 節點。
CUSTOMER_KEY 客戶金鑰 GUID 必要

此值是客戶的金鑰,可為傳遞最佳化服務提供快取節點的安全驗證。
STORAGE_N_SIZE_GB (其中 N 是快取磁碟機) 整數 必要

指定最多九個磁碟機來快取內容,並指定針對每個快取磁碟機上內容所要配置的空間上限 (以 GB 為單位)。 磁碟機的數目必須符合容器建立選項 MicrosoftConnectedCacheN 值中所指定的快取磁碟機繫結值。

範例:
STORAGE_1_SIZE_GB = 150
STORAGE_2_SIZE_GB = 50

快取的大小下限為 10 GB。
UPSTREAM_HOST FQDN/IP 選用

如果網內快取節點與網際網路中斷連線,則可以指定此值做為 Proxy 的上游 MCC 節點。 此設定可用來支援巢狀 IoT 案例。

注意:MCC 會接聽 HTTP 預設連接埠 80。
UPSTREAM_PROXY FQDN/IP:PORT 選用

輸出網際網路 Proxy。 此值可能也是 ISA 95 網路的 OT DMZ Proxy。
CACHEABLE_CUSTOM_N_HOST HOST/IP
FQDN
選用

支援自訂套件存放庫的必要項目。 存放庫可以裝載在本機或網際網路上。 未限制可設定的自訂主機數目。

範例:
Name = CACHEABLE_CUSTOM_1_HOST Value = packages.foo.com
Name = CACHEABLE_CUSTOM_2_HOST Value = packages.bar.com
CACHEABLE_CUSTOM_N_CANONICAL Alias 選用

支援自訂套件存放庫的必要項目。 此值可以當成別名使用,而且將由快取伺服器用來參考不同的 DNS 名稱。 例如,存放庫內容主機名稱可能為 packages.foo.com,但針對不同的區域,可能會有額外的前置詞新增至主機名稱,例如 westuscdn.packages.foo.com 和 eastuscdn.packages.foo.com。 藉由設定標準別名,您可以確定不會針對來自相同主機但不同 CDN 來源的內容複製內容。 標準值的格式並不重要,但其對主機必須是唯一的。 設定值以符合主機值可能最為簡單。

根據上述自訂主機範例的範例:
Name = CACHEABLE_CUSTOM_1_CANONICAL Value = foopackages
Name = CACHEABLE_CUSTOM_2_CANONICAL Value = packages.bar.com
IS_SUMMARY_PUBLIC True 或 False 選用

啟用在區域網路或網際網路上檢視摘要報表。 如果設定為 True,則需要使用 API 金鑰 (稍後討論) 來檢視摘要報表。
IS_SUMMARY_ACCESS_UNRESTRICTED True 或 False 選用

可讓您在區域網路或網際網路上檢視摘要報告,而不需要使用網路中任何裝置的 API 金鑰。 如果您不想鎖定透過瀏覽器檢視快取伺服器摘要資料的存取權,則請使用。

模組容器建立選項

容器建立選項可控制 Microsoft 網內快取模組所使用儲存體和連接埠的相關設定。

範例容器建立選項:

{
    "HostConfig": {
        "Binds": [
            "/microsoftConnectedCache1/:/nginx/cache1/"
        ],
        "PortBindings": {
            "8081/tcp": [
                {
                    "HostPort": "80"
                }
            ],
            "5000/tcp": [
                {
                    "HostPort": "5100"
                }
            ]
        }
    }
}

下列各節列出用來部署 MCC 模組的必要容器建立變數。

HostConfig

需要 HostConfig 參數,才能將容器儲存位置對應至磁碟上的儲存位置。 最多可以指定九個位置。

注意

磁碟機的數目必須符合環境變數 STORAGE_N_SIZE_GB 值 /MicrosoftConnectedCache*N*/:/nginx/cache*N*/ 中所指定的快取磁碟機繫結值。

PortBindings

PortBindings 參數會將容器連接埠對應至主機裝置上的連接埠。

第一個連接埠繫結會指定 MCC 接聽內容要求的外部電腦 HTTP 連接埠。 預設 HostPort 是連接埠 80,而且目前不支援其他連接埠,因為 ADU 用戶端目前在連接埠 80 上提出要求。 TCP 連接埠 8081 是 MCC 所接聽的內部容器連接埠,而且無法變更。

第二個連接埠繫結可確保容器不會接聽主機連接埠 5000。 Microsoft 網內快取模組具有 .NET Core 服務,而快取引擎會將此服務用於各種函數。 若要支援巢狀邊緣,不得將 HostPort 設定為 5000,因為登錄 Proxy 模組已經在主機連接埠 5000 上進行接聽。

Microsoft 網內快取摘要報表

摘要報表目前是客戶檢視部署至 IoT Edge 閘道之 Microsoft 網內快取執行個體快取資料的唯一方式。 會以 15 秒的間隔產生報表,而且報表包括該期間的平均統計資料,以及模組存留期的彙總統計資料。 報告提供的索引碼統計資料如下:

  • hitBytes - 直接來自快取的已傳遞位元組總和。
  • missBytes - Microsoft 網內快取必須從 CDN 下載才能查看快取的已傳遞位元組總和。
  • eggressBytes - hitBytes 和 missBytes 的總和,而且是已傳遞至用戶端的總位元組。
  • hitRatioBytes - hitBytes 與 egressBytes 的比例。 例如,如果在某個期間傳遞的 100% eggressBytes 等於 hitBytes,則這個值會是 1。

摘要報表可在 http://<IoT Edge gateway>:5001/summary 取得。請將「IoT Edge 閘道 IP」<>取代為 IoT Edge 閘道 (裝載 MCC 模組) 的 IP 位址或主機名稱。

下一步

了解如何在單一閘道巢狀和工業 IoT 閘道中實作 Microsoft 網內快取。