瞭解 Azure IoT Edge 模組
適用于: 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 執行時間啟動時,就會建立該模組的新實例。 世界上不同部分的兩部裝置可以使用相同的模組映射。 不過,在裝置上啟動模組時,每個裝置都會有自己的模組實例。
在實作中,模組映射會以存放庫中的容器映射的形式存在,而模組實例是裝置上的容器。
模組身分識別
IoT Edge 執行時間建立新的模組實例時,它會取得對應的模組身分識別。 模組身分識別會儲存在IoT 中樞中,並做為該模組實例之所有本機和雲端通訊的定址和安全性範圍。
與模組實例相關聯的身分識別取決於實例執行所在的裝置身分識別,以及您在解決方案中提供給該模組的名稱。 例如,如果您呼叫 insight
使用 Azure 串流分析的模組,並將它部署在名為 Hannover01
的裝置上,IoT Edge 執行時間會建立稱為 /devices/Hannover01/modules/insight
的對應模組身分識別。
顯然,在需要在同一部裝置上多次部署一個模組映射時,您可以使用不同名稱多次部署相同的映射。
模組對應項
每個模組實例也有對應的模組對應項,可用來設定模組實例。 實例和對應項會透過模組身分識別彼此關聯。
模組對應項是儲存模組資訊和組態屬性的 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 裝置、模組和下游裝置 的擴充離線功能。