管理 AWS IoT Greengrass 核心上的資料串流 - AWS IoT Greengrass

若我們提供該指南英語版本的翻譯,在有任何牴觸的狀況下請以英文版本的指南為主。其透過機器翻譯提供翻譯。

管理 AWS IoT Greengrass 核心上的資料串流

AWS IoT Greengrass 流管理器使傳輸高容量變得更加簡單和可靠 IoT 數據到 AWS 雲。串流管理員會在本機處理資料串流並自動匯出至 AWS 雲端。此功能整合了常見的邊緣案例 (例如機器學習 (ML) 推論),並在匯出至 AWS 雲端或本機儲存目的地之前,先在本機進行資料處理和分析。

串流管理員簡化了應用程式的開發。您的 IoT 應用程序可以使用標準化機制來處理大批量流和管理本地數據保留策略,而不是構建自定義流管理功能。IoT 應用程式可以讀取和寫入串流。它們可以針對每個串流定義儲存類型、大小和資料保留政策,以控制串流管理員處理和匯出串流的方式。

串流管理員是為了在具有間歇性或連線能力有限的環境中工作而設計。您可以定義頻寬使用、逾時行為,以及當核心已連線或中斷連線時如何處理串流資料。對於重要資料,您可以設定優先順序以控制串流匯出至 AWS 雲端的順序。

您可以配置自動導出到 AWS 雲存儲或進一步處理和分析。StreamManager支持導出到以下AWSCloud目標。

  • 通道 AWS IoT Analytics。 AWS IoT Analytics 允許您對數據執行高級分析,以幫助制定業務決策並改進機器學習模型。有關更多信息,請參閱 什麼是 AWS IoT Analytics?AWS IoT Analytics 用戶指南.

  • 流 Kinesis Data Streams。 Kinesis Data Streams 通常用於聚合高容量數據並將其加載到數據倉庫或映射-還原羣集中。有關更多信息,請參閱 什麼是 Amazon Kinesis Data Streams?Amazon Kinesis Developer Guide.

  • 資產屬性 AWS IoT SiteWise。 AWS IoT SiteWise 允許您收集、組織和分析來自工業設備、規模爲的數據。有關更多信息,請參閱 什麼是 AWS IoT SiteWise?AWS IoT SiteWise 用戶指南.

  • 中的對象 Amazon S3. 您可以使用 Amazon S3 以存儲和檢索大量數據。有關更多信息,請參閱 什麼是 Amazon S3?Amazon Simple Storage Service 開發者指南.

串流管理工作流程

您的 IoT 應用程序通過 AWS IoT Greengrass Core SDK. 在簡單的工作流程中,用戶定義的 Lambda 在Greengrass核心上運行的功能消耗 IoT 數據,例如時間序列溫度和壓力度量標準。Lambda 函數可能會篩選或壓縮資料,然後調用 AWS IoT Greengrass Core SDK 以將資料寫入串流管理員中的串流。串流管理員可以根據為串流定義的政策,自動將串流匯出至 AWS 雲端。使用者定義的 Lambda 函數也可以將資料直接傳送到本機資料庫或儲存庫。

您的 IoT 應用程序可以包括多個用戶定義的 Lambda 讀取或寫入流的功能。這些本機 Lambda 函數可以讀取和寫入串流,以在本機進行資料篩選、彙總和分析。如此便可在資料從核心傳輸到雲端或本機目的地之前,快速回應本機事件並擷取有價值的資訊。

工作流程範例如下圖所示。


                串流管理員工作流程圖。

要使用流管理器,首先配置流管理器參數,以定義應用於Greengrass核心上所有流的組級運行時設置。這些可自定義的設置允許您根據業務需求和環境限制,控制流管理器如何存儲、處理和導出流。如需更多詳細資訊,請參閱「設定 AWS IoT Greengrass 串流管理員」。

配置流管理器後,您可以創建和部署 IoT 應用程序。這些通常是用戶定義的 Lambda 功能 StreamManagerClient 在 AWS IoT Greengrass Core SDK 創建流並與交互。在流創建期間, Lambda 函數定義每個流策略,例如導出目的地、優先級和持久性。更多信息,包括代碼片段 StreamManagerClient 操作,請參閱 使用 StreamManagerClient 與流合作.

有關配置簡單工作流程的教程,請參閱 將數據流導出到 AWS 雲(控制檯)將數據流導出到 AWS 雲(CLI).

Requirements

以下要求適用於使用流管理器:

  • 您必須使用 AWS IoT Greengrass 核心軟體 v1.10 or later 版,並啟用串流管理員。如需更多詳細資訊,請參閱「設定 AWS IoT Greengrass 串流管理員」。

    注意

    流管理器在上不受支持 OpenWrt 分配。

  • Java 8 執行時間 (JDK 8) 必須安裝在核心上。

    • 針對以 Debian 為基礎的發行版本 (包括 Raspbian) 或以 Ubuntu 為基礎的發行版本,請執行下列命令:

      sudo apt install openjdk-8-jdk
    • 針對以 Red Hat 為基礎的發行版本 (包括 Amazon Linux),請執行下列命令:

      sudo yum install java-1.8.0-openjdk

      有關更多信息,請參閱 如何下載和安裝預構建的 OpenJDK 包裹 在 OpenJDK 文檔。

     

  • 除了基礎 AWS IoT Greengrass 核心軟體之外,串流管理員還需要至少 70 MB 的 RAM。您的總記憶體需求視您的工作負載而定。

     

  • 使用者定義的 Lambda 函數必須使用 AWS IoT Greengrass Core SDK 與串流管理員進行互動。AWS IoT Greengrass Core SDK 提供多種語言版本,但只有下列版本支援串流管理員操作:

    • JavaSDK(v1.4.0或更高版本)

    • PythonSDK(v1.5.0或更高版本)

    • Node.jsSDK(v1.6.0或更高版本)

    下載與您的對應的SDK版本 Lambda 函數運行時並將其包含在您的 Lambda 函數部署包。

    注意

    適用於 Python 的 AWS IoT Greengrass Core SDK 需要 Python 3.7 或更高版本,並且具有其他的套件依存項目。如需詳細資訊,請參閱建立 Lambda 函數部署套件 (主控台)建立 Lambda 函數部署套件 (CLI)

  • 如果您定義 AWS 流的雲導出目標,您必須在Greengrass組角色中創建導出目標並授予訪問權限。根據目的地的不同,可能還適用其他要求。如需詳細資訊,請參閱:

    您負責維護這些 AWS 雲資源。

資料安全

當您使用串流管理員時,請注意下列安全性考量。

本機資料安全性

AWS IoT Greengrass 不會在本機以靜態或傳輸中加密的方式在核心裝置上的元件之間加密串流資料。

  • 靜態資料。流數據存儲在Greengrass核心的存儲目錄中本地。基於資料安全性的需要,AWS IoT Greengrass 仰賴 Unix 檔案權限和全磁碟加密 (如果啟用)。您可以使用選用的 STREAM_MANAGER_STORE_ROOT_DIR 參數來指定儲存目錄。如果您稍後變更此參數以使用不同的儲存目錄,則 AWS IoT Greengrass 不會刪除之前的儲存目錄或其內容。

     

  • 本地傳輸中的數據。 AWS IoT Greengrass 不加密數據源之間的核心上本地傳輸中的流數據, Lambda 功能, AWS IoT Greengrass Core SDK、和流管理器。

     

  • 傳輸到 AWS 雲端的資料。串流管理員匯出至 AWS 雲端的資料串流會使用具有 Transport Layer Security (TLS) 的標準 AWS 服務用戶端加密。

如需更多詳細資訊,請參閱「資料加密」。

用戶端身分驗證

串流管理員用戶端使用 AWS IoT Greengrass Core SDK 與串流管理員進行通訊。用戶端身份驗證啟用時,只有 Greengrass 群組中的 Lambda 函數可以與串流管理員中的串流互動。用戶端身份驗證停用時,Greengrass 核心上執行的任何處理程序 (例如 Docker 容器) 都可以與串流管理員中的串流互動。您應該只在商業案例需要時,才停用身份驗證。

您可以使用 STREAM_MANAGER_AUTHENTICATE_CLIENT 參數來設定用戶端身份驗證模式。您可以從主控台或 AWS IoT Greengrass API 設定此參數。變更會在部署群組之後生效。

  Enabled 已停用

參數值

true (預設和建議)

false

允許的用戶端

Greengrass 群組中的使用者定義 Lambda 函數

Greengrass 群組中的使用者定義 Lambda 函數

在 Greengrass 核心裝置上執行的其他程序

另請參閱