瞭解 Azure IoT Edge 模組

適用于: IoT Edge 1.4 checkmark IoT Edge 1.4

重要

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

Azure IoT Edge 可讓您以模組 形式 在邊緣上部署和管理商務邏輯。 Azure IoT Edge 模組是 IoT Edge 所管理的最小計算單位,可包含 Azure 服務(例如 Azure 串流分析)或您自己的解決方案特定程式碼。 若要瞭解模組如何開發、部署和維護,請考慮模組的四個概念元素:

  • 模組映射 是包含定義模組之軟體的套件。
  • 模組實例 是在 IoT Edge 裝置上執行模組映射的特定計算單位。 模組實例是由 IoT Edge 執行時間啟動。
  • 模組身分識別 是儲存在與每個模組實例相關聯之IoT 中樞中的資訊(包括安全性認證)。
  • 模組對應 項是儲存在 IoT 中樞 中的 JSON 檔,其中包含模組實例的狀態資訊,包括中繼資料、組態和條件。

模組映射和實例

IoT Edge 模組映射包含利用 IoT Edge 運行時間管理、安全性和通訊功能的應用程式。 您可以開發自己的模組映射,或從支援的 Azure 服務匯出一個映射,例如 Azure 串流分析。 映射存在於雲端中,而且可以在不同的解決方案中更新、變更和部署映射。 例如,使用機器學習來預測生產線輸出的模組會以個別影像的形式存在,而不是使用電腦視覺來控制無人機的模組。

每次模組映射部署至裝置,並由 IoT Edge 執行時間啟動時,就會建立該模組的新實例。 世界上不同部分的兩部裝置可以使用相同的模組映射。 不過,在裝置上啟動模組時,每個裝置都會有自己的模組實例。

Diagram - Module images in cloud, module instances on devices

在實作中,模組映射會以存放庫中的容器映射的形式存在,而模組實例是裝置上的容器。

模組身分識別

IoT Edge 執行時間建立新的模組實例時,它會取得對應的模組身分識別。 模組身分識別會儲存在IoT 中樞中,並做為該模組實例之所有本機和雲端通訊的定址和安全性範圍。

與模組實例相關聯的身分識別取決於實例執行所在的裝置身分識別,以及您在解決方案中提供給該模組的名稱。 例如,如果您呼叫 insight 使用 Azure 串流分析的模組,並將它部署在名為 Hannover01 的裝置上,IoT Edge 執行時間會建立稱為 /devices/Hannover01/modules/insight 的對應模組身分識別。

顯然,在需要在同一部裝置上多次部署一個模組映射時,您可以使用不同名稱多次部署相同的映射。

Diagram - Module identities are unique within devices and across devices

模組對應項

每個模組實例也有對應的模組對應項,可用來設定模組實例。 實例和對應項會透過模組身分識別彼此關聯。

模組對應項是儲存模組資訊和組態屬性的 JSON 檔。 此概念會平行處理來自 IoT 中樞 的 裝置 對應項概念。 模組對應項的結構與裝置對應項相同。 用來與這兩種對應項互動的 API 也相同。 這兩者的唯一差異是用來具現化用戶端 SDK 的身分識別。

// Create a ModuleClient object. This ModuleClient will act on behalf of a
// module since it is created with a module’s connection string instead
// of a device connection string.
ModuleClient client = new ModuleClient.CreateFromEnvironmentAsync(settings);
await client.OpenAsync();

// Get the module twin
Twin twin = await client.GetTwinAsync();

離線功能

Azure IoT Edge 模組與 IoT 中樞同步處理至少一次之後,便可以無限期地離線運作。 IoT Edge 裝置也可以將此離線功能延伸至其他 IoT 裝置。 如需詳細資訊,請參閱 瞭解 IoT Edge 裝置、模組和下游裝置 的擴充離線功能。

下一步