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

AWS IoT Greengrass Version 1 於 2023 年 6 月 30 日進入延長使用壽命階段。如需詳細資訊,請參閱AWS IoT Greengrass V1 維護政策。在此日期之後, AWS IoT Greengrass V1 將不會發行提供功能、增強功能、錯誤修正或安全性修補程式的更新。在上運行的設備 AWS IoT Greengrass V1 不會中斷,並將繼續運行並連接到雲。我們強烈建議您移轉至 AWS IoT Greengrass Version 2,這會增加重要的新功能,並支援其他平台

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

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

AWS IoT Greengrass串流管理員可讓您更輕鬆、可靠地將大量 IoT 資料傳輸至AWS 雲端。串流管理員會在本機處理資料串流並將其匯出至AWS 雲端會自動執行。此功能整合了常見的邊緣案例 (例如機器學習 (ML) 推論),並在匯出至AWS 雲端或本地存儲目標。

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

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

您可以配置自動導出到AWS 雲端用於儲存或進一步處理和分析。流管理器支持導出到以下AWS 雲端目的地。

  • 頻道AWS IoT Analytics。AWS IoT Analytics允許您對數據執行高級分析,以幫助制定業務決策並改進機器學習模型。如需詳細資訊,請參閱「」什麼是AWS IoT Analytics?中的AWS IoT Analytics使用者指南

  • Kinesis Data Streams 中的串流。Kinesis Data Streams 通常係用於彙總大量資料,並將其載入資料倉儲或 map-reduce 叢集。如需詳細資訊,請參閱「」什麼是 Amazon Kinesis Data Streams中的Amazon Kinesis 開發人員指南

  • 資產屬性AWS IoT SiteWise。AWS IoT SiteWise可讓您大規模地收集、組織和分析工業設備的資料。如需詳細資訊,請參閱「」什麼是AWS IoT SiteWise?中的AWS IoT SiteWise使用者指南

  • Amazon S3 中的物件。您可以使用 Amazon S3 來存放和檢索大量資料。如需詳細資訊,請參閱「」什麼是 Amazon S3?中的Amazon Simple Storage 服務開發人員指南

串流管理工作流程

您的 IoT 應用程式會透過AWS IoT Greengrass核心開發套件。在簡單的工作流程中,在 Greengrass Core 上執行的使用者定義 Lambda 函數會使用 IoT 資料,例如時間序列温度和壓力指標。Lambda 函數可能會篩選或壓縮資料,然後調用AWS IoT Greengrass核心開發套件,將資料寫入串流管理員中的串流。流管理器可以將流導出到AWS 雲端,並根據為串流定義的政策。使用者定義的 Lambda 函數也可以將資料直接發送至本機資料庫或儲存庫。

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

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

串流管理員工作流程圖。

要使用串流管理員,請先配置串流管理員參數,以定義適用於 Greengrass 核心上所有串流的羣組級執行時間設定。這些可自定義的設定可讓您根據您的業務需求和環境限制,來控制串流管理員儲存、處理和匯出串流的方式。如需詳細資訊,請參閱 設定 AWS IoT Greengrass 串流管理員

配置流管理器後,您可以創建和部署 IoT 應用程序。這些通常是用户定義的 Lambda 函數,它們使用StreamManagerClient中的AWS IoT Greengrass建立串流並與其互動的核心開發套件。串流建立期間,Lambda 函數會定義每串流政策,例如匯出的目的地、優先順序和持續性。如需詳細資訊,包含StreamManagerClient操作,請參使用 StreamManagerClient 使用串流

如需配置簡單工作流程的教學課程,請參將資料串流匯出至AWS 雲端(console)或者匯出資料串流AWS 雲端(CLI)

要求

使用串流管理員有下列要求:

  • 您必須使用AWS IoT Greengrass核心軟體 v1.10 或更新版本,並啟用串流管理員。如需詳細資訊,請參閱 設定 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核心開發套件與串流管理員互動。所以此AWS IoT Greengrass核心開發套件有多種語言版本,但只有下列版本支援串流管理員操作:

    • Java 開發套件(v1.4.0 或更新版本)

    • Python 開發套件(v1.5.0 或更新版本)

    • Node.js 軟體開發套件 (v1.6.0 或更新版本)

    下載與 Lambda 函數執行時間對應的開發套件版本,並將其包含在 Lambda 函數部署套件中。

    注意

    所以此AWS IoT GreengrassPython 的核心開發套件需要 Python 3.7 或更新版本,並且具有其他的軟體依存項目。如需詳細資訊,請參閱「」建立 Lambda 函數部署套件 (主控台)或者建立一個 Lambda 函數部署套件 (CLI)

  • 如果您定義AWS 雲端匯出的目的地,則必須建立匯出目標並授予 Greengrass 羣組角色中的訪問權限。根據目的地,其他要求也可能適用。如需詳細資訊,請參閱︰

    您有責任維護這些AWS 雲端的費用。

資料安全

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

本機資料安全性

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

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

     

  • 本機傳輸中的資料。AWS IoT Greengrass不會在資料來源之間的核心本機傳輸中加密串流資料,Lambda 函數,AWS IoT Greengrass核心 SDK 和流管理器。

     

  • 傳輸到AWS 雲端。數據流管理器導出到AWS 雲端使用標準AWS使用 Transport Layer Security (TLS) 進行服務客户端加密。

如需詳細資訊,請參閱 資料加密

用戶端身分驗證

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

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

  Enabled 已停用

參數值

true (預設和建議)

false

允許的用戶端

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

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

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

另請參閱