如何使用 IoT Edge 裝置作為閘道

適用于: IoT Edge 1.4 checkmark IoT Edge 1.4

重要

支援的版本是 IoT Edge 1.4。 如果您是舊版,請參閱更新 IoT Edge

IoT Edge 裝置可作為閘道運作,提供網路上其他裝置與IoT 中樞之間的連線。

IoT Edge 中樞模組的作用就像IoT 中樞,因此它可以處理來自具有相同 IoT 中樞身分識別的其他裝置的連線。 這種類型的閘道模式稱為 透明 ,因為訊息可以從下游裝置傳遞至IoT 中樞,就像它們之間沒有閘道一樣。

針對沒有或無法自行連線到IoT 中樞的裝置,IoT Edge 閘道可以提供該連線。 這種類型的閘道模式稱為 轉譯 ,因為 IoT Edge 裝置必須在傳入下游裝置訊息上執行處理,才能轉送至IoT 中樞。 這些案例需要 IoT Edge 閘道上的其他模組來處理處理步驟。

透明和轉譯閘道模式並非互斥。 單一 IoT Edge 裝置可以同時作為透明閘道和翻譯閘道運作。

所有閘道模式都提供下列優點:

  • 邊緣 的分析 - 在本機使用 AI 服務來處理來自下游裝置的資料,而不需將完整逼真遙測傳送至雲端。 在本機尋找並回應深入解析,並只傳送資料子集至IoT 中樞。
  • 下游裝置隔離 - 閘道裝置可以防護所有下游裝置,以免暴露在網際網路上。 它可以位於沒有連線能力的操作技術(OT)網路和提供網路存取權的資訊技術(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.2 版開始,透明閘道可以處理來自下游 IoT Edge 裝置的連線。

父系和子關聯性

您可以在 IoT 中樞中宣告透明閘道關聯性,方法是將 IoT Edge 閘道設定為 連線到它的下游裝置子系 的父

注意

下游裝置會將資料直接發出至網際網路或閘道裝置(已啟用 IoT Edge 或未啟用 IoT Edge)。 子裝置可以是巢狀拓撲中的下游裝置或閘道裝置。

父系/子系關聯性是在閘道組態中的三點建立:

雲端身分識別

透明閘道案例中的所有裝置都需要雲端身分識別,以便向IoT 中樞進行驗證。 當您建立或更新裝置身分識別時,您可以設定裝置的父裝置或子裝置。 此設定會授權父閘道裝置處理其子裝置的驗證。

注意

在 IoT 中樞 中設定父裝置,以作為使用對稱金鑰驗證之下游裝置的選擇性步驟。 不過,從 1.1.0 版開始,每個下游裝置都必須指派給父裝置。

您可以將環境變數 AuthenticationMode 設定為 CloudAndScope ,將 IoT Edge 中樞設定回先前的行為。

子裝置只能有一個父代。 根據預設,父代最多可以有 100 個子系。 您可以在父裝置的 edgeHub 模組中設定 Max連線edClients 環境變數,以變更此限制。

在透明閘道關聯性中,IoT Edge 裝置可以同時為父代和子系。 可以建立多個 IoT Edge 裝置彼此回報的階層。 閘道階層的最上層節點最多可有五個子系世代。 例如,IoT Edge 裝置可有五層 IoT Edge 裝置連結為其下的子系。 但第五代中的 IoT Edge 裝置不能有任何子系、IoT Edge 或其他。

閘道探索

子裝置必須能夠在區域網路上尋找其父裝置。 使用 主機名稱 來設定閘道裝置,可能是完整功能變數名稱 (FQDN) 或 IP 位址,其子裝置會用來尋找它。

在下游 IoT 裝置上,使用 連接字串 中的 gatewayHostname 參數來指向父裝置。

在下游 IoT Edge 裝置上,使用 組態檔中的 parent_hostname 參數來指向父裝置。

安全連線

父裝置和子裝置也需要驗證彼此的連線。 每個裝置都需要共用根 CA 憑證的複本,子裝置會用來驗證它們是否連線到適當的閘道。

當多個 IoT Edge 閘道在閘道階層中彼此連線時,階層中的所有裝置都應該使用單一憑證鏈結。

透明閘道背後的裝置功能

使用 IoT Edge 傳訊管線的所有IoT 中樞基本類型也都支援透明閘道案例。 每個 IoT Edge 閘道都有儲存和轉送功能,可供透過它的訊息使用。

使用下表來瞭解與閘道後方裝置相比,裝置支援不同IoT 中樞功能的方式。

功能 IoT 裝置 閘道後方的 IoT IoT Edge 裝置 閘道後方的 IoT Edge
裝置到雲端 (D2C) 訊息 Yes - IoT D2C Yes - child IoT D2C Yes - IoT Edge D2C Yes - child IoT Edge D2C
雲端到裝置 (C2D) 訊息 Yes - IoT C2D Yes - IoT child C2D No - IoT Edge C2D No - IoT Edge child C2D
直接方法 Yes - IoT direct method Yes - child IoT direct method Yes - IoT Edge direct method Yes - child IoT Edge direct method
裝置對應 項和 模組對應項 Yes - IoT twins Yes - child IoT twins Yes - IoT Edge twins Yes - child IoT Edge twins
檔案上傳 Yes - IoT file upload No - IoT child file upload No - IoT Edge file upload No - IoT Edge child file upload
容器映射提取 Yes - IoT Edge container pull Yes - child IoT Edge container pull
Blob 上傳 Yes - IoT Edge blob upload Yes - child IoT Edge blob upload

容器映射 可以從父裝置下載、儲存及傳遞至子裝置。

Blob,包括支援套件組合和記錄,可以從子裝置上傳至父裝置。

翻譯閘道

如果下游裝置無法連線到IoT 中樞,則 IoT Edge 閘道必須做為翻譯工具。 通常,不支援 MQTT、AMQP 或 HTTP 的裝置需要此模式。 由於這些裝置無法連線到IoT 中樞,因此它們也無法連線到 IoT Edge 中樞模組,而不需要預先處理。

通常專屬於下游裝置硬體或通訊協定的自訂或協力廠商模組必須部署至 IoT Edge 閘道。 這些翻譯模組會採用傳入訊息,並將其轉換成IoT 中樞可以理解的格式。

翻譯閘道有兩種模式: 通訊協定轉譯 身分識別轉譯

Diagram showing translation gateway patterns.

通訊協定轉譯

在通訊協定轉譯閘道模式中,只有 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 入門套件

下一步

瞭解設定透明閘道的三個步驟: