如何使用 IoT Edge 裝置作為閘道
適用於: IoT Edge 1.1
重要
IoT Edge 1.1 終止支援日期為 2022 年 12 月 13 日。 如需此產品、服務、技術或 API 的支援資訊,請參閱 Microsoft 產品生命週期。 如需更新至最新版IoT Edge的詳細資訊,請參閱 更新IoT Edge。
IoT Edge 裝置可以作為閘道運作,進而提供網路上其他裝置與 IoT 中樞之間的連線。
IoT Edge中樞模組的作用就像 IoT 中樞,因此其可以使用相同的 IoT 中樞,處理來自其他裝置的連線,這些裝置具有一個身分識別。 這種類型的閘道模式稱為「透明」,因為訊息可以從下游裝置傳遞至 IoT 中樞,就像其之間沒有閘道一樣。
對於未或無法自行連線到 IoT 中樞的裝置,IoT Edge 閘道可以提供該連線。 這種類型的閘道模式稱為「轉譯」,因為 IoT Edge 裝置必須在傳入下游裝置訊息上執行處理,然後才能轉送至 IoT 中樞。 這些案例需要 IoT Edge 閘道上的其他模組來處理多個處理步驟。
透明和轉譯閘道模式不互斥。 單一 IoT Edge 裝置可以同時當作透明閘道和轉譯閘道運作。
所有閘道模式均可提供下列優點:
- 邊緣上的分析 - 在本機使用 AI 服務處理來自下游裝置的資料,而不需將完整精確度遙測資料傳送至雲端。 在本機尋找及回應深入解析,並只將資料子集傳送到 IoT 中樞。
- 下游裝置隔離 - 閘道裝置可以防護所有下游裝置,以免暴露於網際網路中。 其可位於沒有連線能力的作業技術 (OT) 網路與可讓您存取 Web 的資訊技術 (IT) 網路之間。 同樣地,無法自行連線到 IoT 中樞的裝置可以改為連線到閘道裝置。
- 連線多工作業 - 所有透過 IoT Edge 閘道連線至 IoT 中樞的裝置都可以使用相同的基礎連線。 此多工作業功能需要 IoT Edge 閘道使用 AMQP 作為其上游通訊協定。
- 流量平滑化 - 如果 IoT 中樞發生節流,IoT Edge 裝置會自動實作指數輪詢,同時在本機保存訊息。 這項優點可讓您的解決方案彈性地回復到流量尖峰。
- 離線支援 - 閘道裝置會儲存無法傳遞到 IoT 中樞的訊息和對應項更新。
透明閘道
在透明閘道模式中,理論上可連線到 IoT 中樞的裝置可以改為連線到閘道裝置。 下游裝置有自己的 IoT 中樞身分識別,而且使用 MQTT 或 AMQP 通訊協定進行連線。 閘道只會在裝置與 IoT 中樞之間傳遞通訊。 裝置和透過 IoT 中樞與其互動的使用者都未意識到閘道正在調節其通訊。 這種缺乏意識的情況,表示將閘道視為「透明」。
如需 IoT Edge 中樞如何管理下游裝置與雲端之間通訊的詳細資訊,請參閱了解 Azure IoT Edge 執行階段及其架構。
注意
在IoT Edge 1.1版和更舊版本中,IoT Edge裝置不能是IoT Edge閘道的下游。
從 1.2 版 IoT Edge開始,透明閘道可以處理來自下游 IoT Edge 裝置的連線。 如需詳細資訊,請切換至 本文的 IoT Edge 1.2 版本。
父子關聯性
您可以在 IoT 中樞中宣告透明閘道關聯性,方法是將 IoT Edge 閘道設定為連線到其中的下游裝置「子系」的「父代」。
注意
下游裝置會將資料直接發出至網際網路或網路閘道裝置 (已啟用或未啟用 IoT Edge)。 子裝置可以是巢狀拓撲中的下游裝置或網路閘道裝置。
父/子關聯性是在閘道設定的三個點中建立:
雲端身分識別
透明閘道案例中的所有裝置都需要雲端身分識別,才能向 IoT 中樞進行驗證。 建立或更新裝置身分識別時,您可以設定裝置的父裝置或子裝置。 此設定會授權父閘道裝置處理其子裝置的驗證。
注意
對於使用對稱金鑰驗證的下游裝置,在 IoT 中樞設定父裝置曾經是其選擇性步驟。 不過,從 1.1.0 版開始,每個下游裝置都必須指派給父裝置。
您可以將環境變數 AuthenticationMode 設定為 CloudAndScope 值,以將 IoT Edge 中樞設定為回到先前的行為。
子裝置只能有一個父代。 根據預設,父代最多可以有 100 個子系。 您可以在父裝置的 edgeHub 模組中設定 MaxConnectedClients 環境變數,以變更此限制。
閘道探索
子裝置必須能夠在區域網路上尋找其父裝置。 使用主機名稱 (完整網域名稱 (FQDN) 或 IP 位址) 設定其子裝置將用來尋找其的閘道裝置。
在下游 IoT 裝置上,於連接字串中使用 gatewayHostname 參數來指向父裝置。
安全連線
父裝置和子裝置也需要彼此驗證其連線。 每個裝置都需要共用根 CA 憑證的複本,讓子裝置用來驗證其是否連線到適當的閘道。
透明閘道背後的裝置功能
所有使用 IoT Edge 傳訊管線的 IoT 中樞基元也都支援透明閘道案例。 每個 IoT Edge 閘道對於傳入其中的訊息都有儲存和轉送功能。
使用下表來了解相較於閘道背後的裝置,如何支援裝置的不同 IoT 中樞功能。
功能 | IoT 裝置 | 閘道背後的 IoT |
---|---|---|
裝置到雲端 (D2C) 的訊息 | ||
雲端到裝置 (C2D) 的訊息 | ||
直接方法 | ||
裝置對應項和模組對應項 | ||
檔案上傳 |
轉譯閘道
如果下游裝置無法連線到 IoT 中樞,則 IoT Edge 閘道必須作為翻譯者。 通常,不支援 MQTT、AMQP 或 HTTP 的裝置需要此模式。 由於這些裝置無法連線到 IoT 中樞,因此若沒有一些預先處理,其也無法連線到 IoT Edge 中樞模組。
通常下游裝置硬體或通訊協定特有的自訂或協力廠商模組,必須部署到 IoT Edge 閘道。 這些轉譯模組會收到傳入訊息,並將其轉換成 IoT 中樞可以理解的格式。
轉譯閘道有兩種模式:通訊協定轉譯和身分識別轉譯。
通訊協定轉譯
在通訊協定轉譯閘道模式中,只有 IoT Edge 閘道具有搭配 IoT 中樞的身分識別。 轉模組會從下游裝置接收訊息、將其轉譯為支援的通訊協定,然後 IoT Edge 裝置代表下游裝置傳送訊息。 所有資訊看似來自一部裝置 (也就是閘道)。 如果雲端應用程式想要以每個裝置為基礎來分析資料,則下游裝置必須在其訊息中內嵌額外的識別資訊。 此外,IoT 中樞基元如同對應項和方法一樣,僅受閘道裝置支援,而不受下游裝置支援。 與透明閘道相反,此模式中的閘道會被視為「不透明」,因為其會遮蔽下游裝置的身分識別。
通訊協定轉譯支援資源受限的裝置。 許多現有裝置會產生可增強商業深入解析的資料,不過其設計並未考量雲端連線能力。 不透明閘道允許此資料在 IoT 解決方案中解除鎖定並使用。
身分識別轉譯
身分識別轉譯閘道模式建置在通訊協定轉譯的基礎上,但 IoT Edge 閘道也會代表下游裝置提供 IoT 中樞裝置身分識別。 轉譯模組負責了解下游裝置所使用的通訊協定、提供身分識別,以及將其訊息轉譯成 IoT 中樞基元。 下游裝置會以具有對應項和方法的第一級裝置形式出現在 IoT 中樞內。 使用者可與 IoT 中樞內的裝置互動,而且不會察覺到中繼閘道裝置的存在。
身分識別轉譯可提供通訊協定轉譯的優點,此外還可從雲端進行下游裝置的完整管理。 IoT 解決方案中的所有裝置全都會出現在 IoT 中樞中 (無論其使用的通訊協定為何)。
轉譯閘道背後的裝置功能
下表說明如何在兩種轉譯閘道模式中將 IoT 中樞功能延伸至下游裝置。
功能 | 通訊協定轉譯 | 身分識別轉譯 |
---|---|---|
儲存在 IoT 中樞身分識別登錄中的身分識別 | 僅限閘道裝置的身分識別 | 所有已連線裝置的身分識別 |
裝置對應項 | 只有閘道有裝置和模組對應項 | 每個已連線的裝置都有自己的裝置對應項 |
直接方法及雲端到裝置訊息 | 雲端只可以處理閘道裝置 | 雲端可以個別處理每個連線的裝置 |
IoT 中樞節流與配額 | 套用至閘道裝置 | 套用至每個裝置 |
使用通訊協定轉譯模式時,所有透過該閘道連線的裝置會共用相同的雲端到裝置佇列,其中可以包含最多 50 則訊息。 僅在少數裝置透過每個現場閘道連線,及其雲端到裝置流量較低時,才會使用此模式。
IoT Edge 執行階段不包含通訊協定或身分識別轉譯功能。 這些模式需要經常專屬於硬體和通訊協定的自訂或協力廠商模組。 Azure Marketplace 包含數個可從中選擇的通訊協定轉譯模組。 如需使用身分識別轉譯模式的範例,請參閱 Azure IoT Edge LoRaWAN 入門套件。
下一步
了解設定透明閘道的三個步驟: