- 物聯網›
- AWS IoT Greengrass›
- 常見問答集
AWS IoT Greengrass 常見問答集
一般問題
什麼是 AWS IoT Greengrass?
AWS IoT Greengrass 是物聯網 (IoT) 開放原始碼邊緣執行時間和雲端服務,可協助您建立、部署和管理裝置軟體。客戶可為家中、工廠、車輛和企業數百萬部裝置上的 IoT 應用程式使用 AWS IoT Greengrass。您可以將裝置的程式設計為在本機上針對產生的資料採取動作、根據機器學習模型執行預測、篩選和彙總裝置資料,以及僅將必要資訊傳輸至雲端。
AWS IoT Greengrass 可讓您快速且輕鬆地打造智慧裝置軟體。AWS IoT Greengrass 可進行本機處理、傳送訊息、資料管理、ML 推論,並提供預先建立的元件,加快應用程式部署。AWS IoT Greengrass 也可讓您安全地順利將邊緣裝置連線至任一 AWS 服務和第三方服務。
開發完軟體後,AWS IoT Greengrass 可讓您遠端管理並操作現場裝置的軟體,不需更新韌體。AWS IoT Greengrass 可讓您的裝置保持最新狀態,並越來越聰明。
如何開始使用 AWS IoT Greengrass?
按一下這裡查看 AWS IoT Greengrass 入門指南。您可以查看 AWS IoT 合作夥伴裝置目錄中的合格裝置清單。
哪些 AWS 區域提供 AWS IoT Greengrass 服務?
如需有關 AWS IoT Greengrass 區域可用性的最新資訊,請參閱 AWS 區域表。
AWS IoT Greengrass 的主要元件有哪些? 每個元件的作用是什麼?
AWS IoT Greengrass 由雲端服務和兩個用於 IoT 裝置的軟體分發組成:AWS IoT Greengrass Core、AWS IoT 裝置軟體開發套件和 AWS IoT Greengrass 軟體開發套件。在裝置上安裝軟體分發後,您可以進一步新增或移除功能和元件,以及管理使用 AWS IoT Greengrass 的 IoT 裝置應用程式。
下表說明主要元件。AWS IoT Greengrass 也可與 FreeRTOS 搭配運作。如需 AWS IoT Greengrass 與 FreeRTOS 的詳細資訊,請參閱常見問答集的「將 FreeRTOS 和其他裝置連接到 AWS IoT Greengrass」部分。
作用 | 執行位置 |
|
---|---|---|
AWS IoT Greengrass Core | 提供本機服務 (運算、簡訊、狀態、安全性),以及與執行 AWS IoT 裝置軟體開發套件的裝置在本機通訊 | 執行 Linux 等一般用途作業系統的 64 位元 CPU 裝置 (x86 或 Arm)。 |
AWS IoT Device SDK | 允許裝置在本機與 AWS IoT Greengrass Core 互動 | 幾乎任何支援 C++、Node.js、Java 或 Python 2.7、3.7 和 3.8 的裝置。 |
AWS IoT Greengrass 軟體開發套件* | 允許 Lambda 函數與 AWS IoT Greengrass Core 內的本機服務互動 | 部署到 AWS IoT Greengrass Core 的 Lambda 函數內 |
*僅 AWS IoT Greengrass 1 版需要
什麼是 AWS IoT Greengrass Core 裝置? 需要什麼樣的最低硬體規格?
AWS IoT Greengrass Core 軟體在 IoT 裝置、中樞或閘道上執行,可自動與雲端同步和互動。AWS IoT Greengrass Core 的設計是為了在配備一般用途處理器的裝置上執行,這種處理器足以執行 Linux 這類一般用途的作業系統。AWS IoT Greengrass 需要至少 1 GHz 的運算 (Arm 或 x86)、96 MB* 的 RAM (v2.0 邊緣執行時間或更新版本),以及根據使用案例滿足所需作業系統、訊息輸送量及 AWS Lambda 函數的其他資源。AWS IoT Greengrass Core 可在裝置上執行,範圍包括從 Raspberry Pi 到伺服器層級的設備。
*根據使用以下 JDK 的 AWS 研究:用於測試的 JDK 版本:openjdk 版本 "1.8.0_275",OpenJDK Runtime Environment (組建 1.8.0_275-8u275-b01-0ubuntu1~18.04-b01) 和 OpenJDK 64-Bit Server VM (組建 25.275-b01,混合模式)。若使用其他輸入,記憶體用量可能會更高。
AWS IoT Greengrass 支援哪些 AWS Lambda 開發語言?
AWS IoT Greengrass 支援以下列語言撰寫的 Lambda 函數:
- Python 2.7、3.7 和 3.8
- Node v8.10 和 v12.x
- Java 8 或更新版本
- C
- C++
- 支援匯入 C 程式庫的任何語言
哪些 Lambda 可以部署到 AWS IoT Greengrass?
使用 Python 2.7、3.7 和 3.8、Node v8.10 或 v12.x 或 Java 8 Lambda Runtime 的任何 Lambda 都可部署到 AWS IoT Greengrass Core。部署到 AWS IoT Greengrass 的 Lambda 必須與 AWS IoT Greengrass Core 軟體開發套件封裝在一起。此外,您也可以選擇將 AWS 軟體開發套件新增到 Lambda 套件,以便輕鬆與 Amazon DynamoDB 等 AWS 服務互動。
請注意:當 AWS IoT Greengrass Core 處於離線模式時,Lambda 函數將無法使用部分 Lambda 依賴的雲端服務 (例如 DynamoDB),而且這些服務的 API 呼叫也會在離線模式失敗。此外,如果您將 AWS IoT Greengrass Core 軟體開發套件和 AWS 軟體開發套件放在同一個套件,Lambda 函數必須針對每個 AWS IoT Greengrass Core 軟體開發套件和 AWS 軟體開發套件使用適當的命名空間。
是否可以搭配 Docker 容器使用 AWS IoT Greengrass?
是,您可以在 AWS IoT Greengrass 裝置上執行 Docker 容器,或在 Docker 容器環境中執行 AWS IoT Greengrass。
您可以使用 AWS IoT Greengrass 來部署、執行和管理 Docker 容器。您可以使用任何第三方工具來建置 Docker/Open Container Initiative (OCI) 映像,並且 Docker 映像可以儲存在 Docker 容器登錄檔中,例如 Amazon Elastic Container Registry (Amazon ECR)、Docker Hub 或私有 Docker Trusted Registries (DTR)。
透過設定 AWS IoT Greengrass 群組以在無 Lambda 容器化的情況下執行,您可以在 Docker 容器中執行 AWS IoT Greengrass。若要開始使用,您可以在此處存取 AWS IoT Greengrass Docker 檔案,並且在此處尋找有關如何從 Amazon ECR 提取 AWS IoT Greengrass Docker 影像的文件。您也可以 snap 的形式部署 AWS IoT Greengrass,這是可在各種 Linux 分發上執行的容器化軟體套件。若要開始使用,您可以在此處存取 AWS IoT Greengrass snap,然後在此處開始使用。
是否可以在 Mac OS 或 Windows 上執行 AWS IoT Greengrass?
可以,透過在無 Greengrass Lambda 容器化的情況下以 Docker 容器中的群組層級執行 AWS IoT Greengrass,您可以在 Mac OS 或 Windows 上執行 AWS IoT Greengrass。您可以在我們的文件中進一步了解此功能。
什麼是 AWS IoT Greengrass SLA?
用於雲端管理的 AWS IoT Greengrass SLA 規定,如果 AWS IoT Greengrass 未能達到 AWS IoT Greengrass 雲端服務每個月正常執行時間百分比至少 99.9%,則您可能享有部分每月服務費用積分。
如需 SLA 所有條款與條件的完整詳細資訊,以及如何提交索賠的詳細資訊,請參閱 AWS IoT Greengrass SLA 詳細資訊頁面。
哪些 AWS IoT Greengrass 元件開放原始碼?
可以為我的專案變更 AWS IoT Greengrass 邊緣執行時間原始碼嗎?
是。AWS IoT Greengrass 開放原始碼邊緣執行時間是根據 Apache 2.0 授權散佈,因此可依您應用程式或專案的任何特定需求修改,不需經過 AWS 許可。
使用不同版本 AWS IoT Greengrass 會有不同定價嗎?
不會,版本間的定價沒有差異。如需定價的詳細資訊,請參閱定價頁面。
本機資源存取
什麼是 AWS IoT Greengrass 本機資源?
「本機資源」是指 AWS IoT Greengrass 主機上實際存在的匯流排和週邊設備,或 AWS IoT Greengrass 主機作業系統上的檔案系統磁碟區。例如,若要透過 Modbus/CANBUS 與連線裝置通訊,AWS IoT Greengrass Lambda 函數需要存取裝置上的序列連接埠。本機資源定義在 AWS IoT Greengrass 群組範圍,AWS IoT Greengrass 群組內的所有 Lambda 都可使用定義的本機資源。
何時會存取本機資源?
AWS IoT Greengrass 本機資源允許您的 Lambda 函數與感應器和傳動器等硬體以安全的方式互動。例如,Lambda 函數可從裝置上的攝影機讀取影片串流,或傳送命令和控制到 GPIO。
安全性
什麼是硬體信任根及為什麼我可能想要它?
硬體信任根提供防竄改信任執行環境,在這些環境中,真實隨機數字產生器可以產生用於加密功能的私有金鑰。這些硬體「安全元素」可防惡意竄改並以實體方式與特定 IoT 裝置關聯,從而建立可以藉此安全部署軟體的強大的信任根。
如何將硬體信任根安全引入 AWS IoT Greengrass 架構?
首先,您必須在具有安全元素的節點裝置上執行 AWS IoT Greengrass Core 軟體。依照硬體廠商的指示,對該安全元素產生私有金鑰。接下來,依照我們的文件更新 config.json 檔案設定以使用安全元素私有金鑰。
哪些合作夥伴提供具有安全元素的硬體?
如需最新整合硬體清單,請瀏覽 AWS 合作夥伴裝置型錄。
安全元素如何合格地與硬體安全整合功能搭配使用?
安全元素廠商已將安全元素設定為使用一組 PKCS#11 標準 API 以與 AWS IoT Greengrass 整合。廠商使用一組測試工具來驗證是否已正確設定硬體。
ML 推論
如何使用以 Amazon SageMaker Neo 編譯的 ML 模型?
在 AWS IoT Greengrass 裝置上,您可以使用透過 Amazon SageMaker Neo 最佳化的模型對本機產生的資料執行 ML 推論。若要準備進行推論的裝置,您可以依照在裝置上安裝 Neo DLR 執行時間的指示進行操作。如需詳細資訊,請參閱安裝 DLR。
您可以在 Amazon SageMaker Neo 中針對目標硬體平台編譯模型,並將其儲存在 Amazon Simple Storage Service (Amazon S3) 儲存貯體。然後,您可設定 AWS IoT Greengrass 使用 Amazon S3 儲存貯體以部署 Neo 最佳化模型,以在裝置上進行本機推論。
如何使用未在 Amazon SageMaker 中訓練過的 ML 模型?
您可以將別處訓練的 ML 模型以 .tar.gz 和 .zip 格式放入 Amazon S3 並加以使用。接著,讓 AWS IoT Greengrass 知道 Amazon S3 URI,AWS IoT Greengrass 便會部署到目標裝置。
哪些 AWS 區域提供 AWS IoT Greengrass ML 推論?
所有提供 AWS IoT Greengrass 的區域目前都會提供 AWS IoT Greengrass ML 推論。如需有關 AWS IoT Greengrass 區域可用性的最新資訊,請參閱 AWS 區域表。
只要您擁有其中一個 AWS 區域的存取權,無論在哪個地理位置都能使用 AWS IoT Greengrass ML 推論。
AWS IoT Greengrass 元件
什麼是 AWS IoT Greengrass 元件?
AWS IoT Greengrass 元件會建立區塊,讓您輕鬆建立複雜工作流程,例如機器學習推論、本機處理、傳送訊息和資料管理。AWS IoT Greengrass 也提供串流管理員等預先建立的元件,支援將資料匯出至本機和雲端目標。這些元件可加快應用程式開發,您就不必擔心了解裝置協定、管理登入資料或與外部 API 互動,還可不必撰寫程式碼與 AWS 服務和第三方應用程式互動。此外,您也可建立除了 AWS IoT Greengrass 以外的專屬元件。所有元件專為輕鬆使用而設計,可透過 AWS Greengrass 主控台設定和管理。這些元件可讓您輕鬆探索、匯入、設定及部署位於邊緣的元件,重複使用 AWS IoT Greengrass 裝置之間的通用商業邏輯。
如何將 AWS IoT Greengrass 元件新增至我的裝置組態或裝置?
您可以在 AWS IoT Greengrass 主控台中,透過每個群組的「元件」部分新增 AWS IoT Greengrass 元件。新增之後,可設定 AWS IoT Greengrass 元件的參數,並部署群組以將其新增至 AWS IoT Greengrass Core 裝置。
誰可以使用 AWS IoT Greengrass 元件?
所有 AWS IoT Greengrass 客戶均可透過 AWS 管理主控台,在 AWS IoT Greengrass 主控台內使用 AWS IoT Greengrass 元件。
提供哪些 AWS IoT Greengrass 元件?
您可以在我們的文件中尋找可用的 AWS IoT Greengrass 元件。
協定界面卡
如何使用 AWS IoT Greengrass 實作替代協定?
因為在 AWS IoT Greengrass Core 上執行的 Lambda 函數可以存取網路資源,所以您可以使用 Lambda 對 TCP/IP 上實作的任何協定實作支援。此外,您也可以利用 AWS IoT Greengrass 本機資源存取,對需要存取硬體介面卡/驅動程式的協定實作支援。
AWS IoT Greengrass 也提供了 Modbus-RTU、Modbus-TCP 和 EtherNet/IP 協定介面卡連接器,協助您連接邊緣裝置。如需詳細資訊,請參閱此處的連接器文件。
如何將工業裝置資料擷取至 AWS IoT Greengrass?
您可以使用 IoT SiteWise 連接器擷取 OPC UA 伺服器的裝置資料、使用 Modbus-TCP 連接器擷取 Modbus-TCP 伺服器的裝置資料,以及使用 EtherNet/IP 連接器擷取 EtherNet/IP 伺服器的裝置資料。系統預設啟用將資料匯出至 AWS IoT SiteWise,您可以使用自訂串流,將資料匯出至 AWS IoT Analytics、Amazon Kinesis 和 Amazon S3。您也可以使用自訂串流,將資料傳送至 Lambda 函數,進行本機處理再匯出資料。或者,您可以建立自訂實作,使用在本機部署的 Lambda 函數擷取和處理裝置資料,然後將該資料交付到本機或雲端目標。
無線 (OTA) 更新
什麼是 AWS IoT Greengrass 無線 (OTA) 更新?
AWS 每隔一段時間就會發布 AWS IoT Greengrass Core 軟體的更新版本,以提供下列好處:
- 介紹全新或改良的功能
- 錯誤修正
- 提升安全性
有了 AWS IoT Greengrass 無線更新 (OTA),客戶無須手動下載和重新安裝 AWS IoT Greengrass Core 軟體就可以得到這些好處。
是否一定要使用 AWS IoT Greengrass OTA 更新?
否。您永遠可以選擇手動下載和安裝更新,或是遵循其他軟體部署程序。
如何收到新版 AWS IoT Greengrass Core 推出的通知?
當新版 AWS IoT Greengrass Core 推出時,我們將在 AWS IoT Greengrass 軟體開發人員論壇上宣布。您可以在這裡找到該論壇的連結。
適用於 AWS IoT Greengrass 的 AWS IoT Device Tester
什麼是適用於 AWS IoT Greengrass 的 AWS IoT Device Tester?
適用於 AWS IoT Greengrass 的 AWS IoT Device Tester 是測試自動化工具,可讓您在以 Linux 為基礎的裝置上進行自我測試並驗證 AWS IoT Greengrass。AWS IoT Device Tester 提供自動化的測試集合,可讓您驗證裝置是否可以執行 AWS IoT Greengrass,並由 AWS IoT 服務驗證且與 AWS IoT 服務互相操作。
在哪裡取得適用於 AWS IoT Greengrass 的 AWS IoT Device Tester?
您可以在這裡取得適用於 AWS IoT Greengrass 的 AWS IoT Device Tester。
適用於 AWS IoT Greengrass 的 AWS IoT Device Tester 測試什麼?
適用於 AWS IoT Greengrass 的 AWS IoT Device Tester 可透過測試以下項目來驗證裝置的 CPU 架構、Linux 核心組態以及與 AWS IoT Greengrass 搭配使用的驅動程式之組合:
- 已安裝必需的軟體套件
- 包含 AWS IoT Greengrass 所需核心組態的 Linux 核心 (例如,為 cgroups 設定的核心)
- 無線更新
- 裝置可以與 AWS IoT 服務連接,且可以執行 AWS Lambda 函數
- 本機資源存取功能
- 裝置陰影功能
如何取得適用於 AWS IoT Greengrass 的 AWS IoT Device Tester 的技術支援?
如何將我的設備列示於 AWS Partner Device Catalog 中?
如果您是 AWS 合作夥伴,AWS 裝置認證計畫定義了將您的裝置列示於目錄的裝置的程序。程序的高階概觀如下:
- 通過適用於 AWS IoT Greengrass 的 AWS IoT Device Tester 測試
- 登入 AWS 合作夥伴網路入口網站
- 上傳 AWS IoT Device Tester 報告。一旦 AWS 驗證了報告,而且已提交其他裝置的相關成品 (例如圖片和資料表),裝置就會列在 AWS 合作夥伴裝置型錄中。
哪些區域提供適用於 AWS IoT Greengrass 的 AWS IoT Device Tester?
所有提供 AWS IoT Greengrass 的區域都會提供適用於 AWS IoT Greengrass 的 AWS IoT Device Tester。
適用於 AWS IoT Greengrass 的 AWS IoT Device Tester 的費用是多少?
適用於 AWS IoT Greengrass 的 AWS IoT Device Tester 免費使用。不過,作為測試的一部份,您將負責與 AWS 用量相關聯的任何費用。在單一 AWS IoT Greengrass 裝置上執行一次 AWS IoT Device Tester 測試的費用少於 20 美分。
AWS IoT Greengrass 與哪些 CPU 架構和作業系統相容?
哪些裝置與 AWS IoT Greengrass Core 相容?如何快速開始使用?
您可以在符合最低硬體和軟體要求的裝置上執行 AWS IoT Greengrass Core。您亦可使用 AWS IoT Device Tester 對裝置進行自我測試,以查看裝置是否可與 AWS IoT Greengrass 和其他 AWS 服務一起以最佳方式執行。您還可以在 AWS 合作夥伴裝置型錄中探索和評估與 AWS IoT Greengrass 相容的裝置。
將 FreeRTOS 和其他裝置連接到 AWS IoT Greengrass
如何從本機裝置連接到 AWS IoT Greengrass Core?
使用 FreeRTOS 或 AWS IoT 裝置軟體開發套件,可將裝置以本機方式連接到 AWS IoT Greengrass Core。可透過 C++、Node.js、Java 和 Python 2.7、3.7 和 3.8,在 AWS IoT 裝置軟體開發套件上使用 AWS IoT Greengrass 進行探索。如需詳細資訊,請參閱 AWS IoT Greengrass 開發人員指南。您可以在 FreeRTOS 原始程式碼中使用 AWS IoT Greengrass 探索程式庫,以尋找和連接 AWS IoT Greengrass Core 裝置。
可透過哪些語言在 AWS IoT 裝置軟體開發套件上支援 AWS IoT Greengrass?
可透過 C++、Node.js、Java 和 Python 2.7、3.7 和 3.8,在 AWS IoT 裝置軟體開發套件上使用 AWS IoT Greengrass 進行探索。如需詳細資訊,請參閱 AWS IoT Greengrass 開發人員指南。
FreeRTOS 是否可與 AWS IoT Greengrass 搭配使用?
是。FreeRTOS 裝置可直接連接到雲端或 AWS IoT Greengrass。FreeRTOS 在 IoT 端點上執行,在 IoT 拓撲中通常負責「感應」和「行動」。
AWS IoT Greengrass 與 FreeRTOS 之間的差異為何?
AWS IoT Greengrass 是一種軟體,可讓您以安全的方式在連線裝置執行本機運算、簡訊、資料快取、同步操作及機器學習推論功能。使用 AWS IoT Greengrass 時,連線裝置可執行 AWS Lambda 函數或 Docker 容器 (或兩者)、讓裝置資料保持同步,即使沒有連接到網際網路也可以與其他裝置安全的通訊。使用 AWS Lambda,AWS IoT Greengrass 可確保您的 IoT 裝置能夠快速回應本機事件、使用在 AWS IoT Greengrass Core 上執行的 Lambda 函數與本機資源互動、透過不穩定的連線進行操作、透過無線更新保持最新狀態,以及最小化 IoT 資料傳輸到雲端的成本。
FreeRTOS 是適用在邊緣上操作之微型控制器的開放原始碼即時作業系統,通常不支援可執行 AWS IoT Greengrass 的晶片組。這些微型控制器裝置廣泛運用在各種 IoT 端點,例如運動追蹤器、心律調節器、電錶、汽車傳動系統以及感應器網路。FreeRTOS 裝置無法執行 AWS IoT Greengrass Core,但可以與 AWS IoT Greengrass Core 裝置連接、相互收發訊息,以便在邊緣進行本機處理。
兩種裝置上的硬體需求和作業系統並不相同。
FreeRTOS | AWS IoT Greengrass | |
---|---|---|
軟體 | 即時作業系統,在微型控制器上執行 | Linux 裝置的執行時間和 AWS IoT Greengrass 感知裝置的軟體開發套件 |
硬體需求 | >64 KB 的 RAM | >96 MB* 的 RAM (v2.0 邊緣執行時期或更新版本) >128 MB 的 RAM (v1.11 邊緣執行時期或舊版) |
類別 | 嵌入系統、IoT 端點 | 邊緣裝置、本機閘道 |
使用案例 | 以微型控制器為基礎的裝置 | 工業自動化系統、無線路由器、攝影機、閘道 |
*根據使用以下 JDK 的 AWS 研究:用於測試的 JDK 版本:openjdk 版本 "1.8.0_275",OpenJDK Runtime Environment (組建 1.8.0_275-8u275-b01-0ubuntu1~18.04-b01) 和 OpenJDK 64-Bit Server VM (組建 25.275-b01,混合模式)。若使用其他輸入,記憶體用量可能會更高。