AWS IoT Greengrass是什麼?V1和V2版本及其差別

AWS IoT Greengrass

​ Greengrass主要是用於邊緣計算或者機器學習有關,對於詳細瞭解請閱讀結尾處的官方文檔,文檔內容也較爲豐富。html

1、AWS IoT Greengrass V1

1. 概述

​ AWS Greengrass 是一種軟件,用於將 AWS 雲功能擴展到本地設備,使得本地設備能夠更靠近信息源來收集和分析數據,同時在本地網絡上安全地相互通訊。更具體來講,使用 AWS Greengrass 的開發人員能夠在雲中編寫無服務器代碼 (AWS Lambda 函數),而後方便地將其部署到設備以在本地執行應用程序。在 AWS Greengrass 中,設備可在本地網絡上安全地通訊並互相交換消息而沒必要鏈接到雲。linux

2. 功能

  • Lambda 運行時:能夠將雲上建立的 Lambda 函數部署到 Greengrass Core 上並使其運行。Lambda 函數能夠和邊緣物聯網設備,以及雲服務進行交互。
  • 影子設備:爲邊緣物聯網設備提供 Device Shadow 服務,相似雲上 Device Shadow 服務。能夠經過更新和查詢設備的影子,來獲取和修改設備的狀態。
  • 消息管理器:支持 Greengrass 組中的物聯網設備之間的通訊,以及與 Lambda 函數、設備影子服務之間通訊。影子數據能夠只保存在本地(Local Shadow),也能夠同步到雲上。
  • 組管理: 管理 Greengrass Group,一個 group 爲一個獨立的邊緣物聯網環境。
  • 發現服務:物聯網設備能夠經過鏈接到IoT雲服務,而後經過 Discovery 功能來發現 Greengrass Core,從而與之通訊。
  • 無線更新代理:能夠遠程更新 Greengrass Core 軟件。
  • 本地資源訪問:支持 Greengrass Core 上的 Lambda 函數訪問本地資源,好比樹莓派的GPIO,本地視頻攝像頭等。
  • 機器學習推理:支持將雲上 ML 機器學習推理功能部署到Greengrass Core。

3. 基本架構

img

  • 若干本地設備和一個Greengrass Core (GGC)組成一個 Greengrass 組。與 AWS Greengrass Core 通訊的全部設備都必須是 Greengrass 組的成員。每一個組都必須包含 AWS Greengrass Core (彷佛一個組只能有一個 GGC)。Discovery API 使設備可以檢索鏈接到 AWS Greengrass Core (與設備位於同一 Greengrass 組中) 所需的信息。
  • 本地設備和 Greengrass Core 經過本地網絡通訊,能夠不用訪問雲(Discovery Service 須要設備在啓動時鏈接到雲上獲取到 GG Core 的鏈接信息)。設備上必須安裝 AWS IoT Device SDK。
  • Greengrass 能夠和雲通訊,須要有互聯網訪問能力。
  • 能夠在 Greengrass Core 上運行 Lambda 函數,這些函數能夠和設備之間通訊,也能夠和雲通訊。
  • 雲上的配置、Lambda 函數以及機器學習模版經過 『Deploy』 被安裝到 Greengrass Core 上。Greengrass Core 上有一個部署代理,它在接到通知後,從雲上獲取待部署材料,而後在 Greengrass Core 上進行部署。
  • 組中設備鏈接到GGC 的過程:
    • AWS IoT 設備使用其設備證書、私有密鑰和 AWS IoT 根 CA 鏈接到 Greengrass 雲服務。
    • 鏈接後,AWS IoT 設備將使用 Greengrass Discovery Service 查找其 AWS Greengrass 核心設備的 IP 地址。該設備還可下載組的根 CA 證書,該證書可用於對 Greengrass 核心設備進行身份驗證。
    • AWS IoT 設備嘗試鏈接到 AWS Greengrass Core,並傳遞其設備證書和客戶端 ID。若是客戶端 ID 與設備的事物名稱匹配而且證書有效,則將進行鏈接。不然,將終止鏈接。

4. 相關角色功能

  • AWS IoT Coregit

    • AWS IoT Core 是一款託管的雲服務,讓互聯設備與雲應用程序及其餘設備交互。AWS IoT Core 能夠支持數十億臺設備和數萬億條消息,而且能夠對這些消息進行處理並將其安全可靠地路由至 AWS 終端節點和其餘設備。藉助 AWS IoT Core,應用程序能夠隨時跟蹤全部設備並與其通訊。github

    • 藉助 AWS IoT Core,還可使用一系列 Amazon 服務來構建 IoT 應用程序,以便收集、處理和分析互聯設備生成的數據並據之採起行動。編程

    • 同時也提供控制檯配置 Greengrass,從而簡化開發和部署過程。Greengrass組內本地設備Lambda等初始化時須要先與雲鏈接獲取Greengrass Core的信息,以後能夠經過本地網絡通訊可與雲網絡斷開。安全

    • 遠程監控的做用服務器

  • AWS IoT Greengrass網絡

    ​ GreenGrass則彌補上了AWS雲和IoT設備之間的中間段,主要處理的就是邊緣計算這一部分,尤爲在和AWS雲服務中斷同時也可以繼續運行,甚至能夠在邊緣設別上繼續執行Lambda應用架構

    • AWS IoT Greengrass Core
      • 能夠執行AMS Lambda,進行消息傳輸,設備遮蔽(device shadows),安全性保護以及和雲端進行通信
    • Lambda
      • Greengrass 可將 Lambda 函數擴展到邊緣站點。Lambda 函數是按需運行或者無限運行的小應用程序。可使用本地 Lambda 函數脫機響應設備
      • Lambda 函數使用 AWS IoT Greengrass Core 開發工具包與 AWS IoT Greengrass Core 進行本地交互。容許已部署的 Lambda 函數與 AWS IoT Core 交換 MQTT 消息、與 Greengrass 組中的鏈接器、設備及其餘 Lambda 函數交換 MQTT 消息等
      • 也能夠處理篩選設備數據,而後再將數據傳輸到雲
    • Device
      • 設備經過AWS IoT 設備開發工具包用於和Greengrass Core通信,發佈和接受Greengrass的消息。
      • 一般IoT設備都不是獨立工做,各個設備之間可以通信和協做,同時不一樣的Greengrass Core之間也能夠協做

5. 主要組件

​ AWS IoT Greengrass 由一種雲服務和三個適用於 IoT 設備的軟件發行版組成:AWS IoT Greengrass Core、AWS IoT 設備開發工具包和 AWS IoT Greengrass 開發工具包機器學習

用途 運行位置
AWS IoT Greengrass Core 提供本地服務(計算、消息收發、狀態、安全),並在本地與運行 AWS IoT 設備開發工具包的設備通訊 運行通用操做系統(如 Linux)、基於 CPU 的 64 位設備(x86 或 Arm)。
AWS IoT 設備開發工具包(aws-iot-device-sdk) 容許設備與 AWS IoT Greengrass Core 在本地交互 幾乎全部支持 C++ 或 Python 2.7 和 3.7 的設備。同時包含在 FreeRTOS 中
AWS IoT Greengrass 開發工具包(aws-greengrass-core-sdk) 容許 Lambda 函數與 AWS IoT Greengrass Core 中的本地服務進行交互 在部署到 AWS IoT Greengrass Core 的 Lambda 函數中

2、AWS IoT Greengrass V2

1. 概述

​ AWS IoT Greengrass V2是開源的物聯網邊緣運行時和雲服務,可幫助您在設備上構建,部署和管理IoT應用程序。AWS IoT Greengrass使您的設備能夠在更接近數據生成位置的地方收集和分析數據,對本地事件進行自動響應,並與局域網上的其餘設備進行安全通訊。Greengrass設備還能夠與AWS IoT Core安全通訊,並將IoT數據導出到AWS Cloud。您可使用AWS IoT Greengrass使用稱爲組件的預構建軟件模塊來構建邊緣應用程序,這些模塊能夠將邊緣設備鏈接到AWS服務或第三方服務。您還可使用AWS IoT Greengrass使用Lambda函數、Docker容器、本地操做系統進程、或者自定義運行時等。

2. 基本架構

img

  • AWS IoT Greengrass client software(aws-greengrass-nucleus),運行在基於 linux 的發行版上。經過 AWS IoT Greengrass,你能夠編程設備對它們產生的數據進行本地操做,運行基於機器學習模型的預測,過濾和聚合設備數據。能夠在本地執行 AWS Lambda 函數、 Docker 容器、本地操做系統進程或自定義運行時。
  • AWS IoT Greengrass 提供了預先構建的軟件模塊,稱爲組件,能夠輕鬆擴展邊緣設備功能。AWS 的 IoT Greengrass 組件可以鏈接到 AWS 服務和邊緣的第三方應用程序。在開發完物聯網應用程序以後,AWS IoT Greengrass 能夠遠程部署、配置和管理這些應用程序。

4. 相關角色功能

  • Greengrass core device

    • 一個運行AWS IoT Greengrass Core軟件的設備。Greengrass core device是 AWS 的物聯網事物。能夠將多個核心設備添加到 AWS 的物聯網事物組中,建立 Greengrass core設備組
  • AWS IoT Greengrass Core software

    • 安裝在覈心設備上的全部 AWS 物聯網軟件的超集。Greengrass Core software由如下幾部分組成:

      • Nucleus

        所需的組件包括 Greengrass Core software的最低功能。該核心管理其餘組件的部署、編制和生命週期管理。它也促進了 AWS 物聯網組件之間的進程間通訊

      • Optional components

        AWS 提供的可配置組件,能夠在邊緣設備上增長額外功能。根據自身需求能夠選擇要部署到設備的可選組件,例如數據流、本地機器學習推理或本地命令行界面等

  • Greengrass component

    • 部署在 Greengrass 核心設備上並在其上運行的軟件模塊。全部與 AWS IoT Greengrass一塊兒開發和部署的軟件都是做爲一個組件建模的。AWS IoT Greengrass 提供了預先構建的公共組件,它們提供能夠在應用程序中使用的特性和功能。還能夠在本地設備或雲中開發本身的定製組件。在開發了一個定製組件以後,可使用 AWS IoT Greengrass雲服務將其部署到單核或多核設備上。您能夠建立自定義組件並將該組件部署到核心設備

3、AWS IoT Greengrass V1-V2相異點

1. V2 New

  • 開源,github:https://github.com/aws-greengrass
  • 模塊化,可根據實際資源用途等添加/刪除預構建的軟件組件
  • 新的本地開發工具,可本地開發和調試應用程序
  • 改進的應用部署

2. 差別

  • 組和部署方式
    • V1中,一個組定義了一個核心設備,該核心設備的設置和軟件以及鏈接到該核心設備的AWS IoT列表
    • V2中,可使用部署來定義在覈心設備上運行的軟件組件和配置,每一個部署都針對單個核心設備或能夠包含多個核心設備的AWS IoT事物組
  • Core software和鏈接器
    • V1中,AWS IoT Greengrass Core軟件是一個軟件包,其中包含該軟件及其全部功能。AWS IoT Greengrass鏈接器是您部署到AWS IoT Greengrass V1核心設備的模塊
    • V2中,AWS IoT Greengrass Core軟件是模塊化的,所以能夠選擇安裝內容以控制內存佔用量。Greengrass nucleus component是處理其餘組件的部署,業務流程和生命週期管理的AWS IoT Greengrass Core軟件的最低必需安裝。流管理器,祕密管理器和日誌管理器等功能是僅在須要這些功能時才部署的組件。AWS IoT Greengrass V2還提供了一些AWS IoT Greengrass V1鏈接器做爲組件
  • Lambda函數
    • V1中,Lambda 函數定義了在覈心設備上運行的軟件。在每一個 Greengrass 組中,定義該函數使用的訂閱和本地資源
    • V2中,組件是在覈心設備上運行的軟件。組件能夠由任何軟件組成,每一個組件都有一個配方,定義組件的元數據、參數、依賴項和腳本,以便在組件生命週期的每一個步驟中運行
  • Subscriptions
    • V1中,訂閱指定 Lambda 函數接收事件消息的位置做爲函數有效負載。功能訂閱本地發佈/訂閱消息和 AWS 物聯網核心 MQTT 消息
    • V2中,組件管理本身對本地發佈/訂閱和 AWS 的 IoT Core MQTT 消息的訂閱。在組件配方中,定義受權策略以指定組件可使用哪些主題進行通訊。在組件代碼中,您能夠爲本地發佈/訂閱消息和 AWS IoT Core MQTT 消息使用進程間通訊(IPC)
  • 本地資源
    • V1中,Lambda 函數運行在容器中,能夠配置這些容器來訪問核心設備文件系統中的卷和設備
    • V2中,組件運行在容器以外,所以不須要指定組件能夠訪問哪些本地資源。能夠開發直接使用核心設備上的本地資源的組件。還能夠開發運行 Docker 容器的組件

4、官方文檔

相關文章
相關標籤/搜索