開發AWS IoT Greengrass元件 - AWS IoT Greengrass

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

開發AWS IoT Greengrass元件

您可以在 Greengrass 核心裝置上開發和測試元件。因此,您可以建立並重複使用您的AWS IoT Greengrass軟體,而無需與AWS 雲端. 完成元件的某個版本後,您可以將其上傳到AWS IoT Greengrass雲端,以便您和您的團隊可以將元件部署到叢集中的其他裝置。如需如何部署元件的詳細資訊,請參閱將AWS IoT Greengrass元件部署到裝置

每個組件都由方和文物組成。

  • 食譜

    每個組件都包含一個 recipe 文件,該文件定義了其元數據。方案也會指定元件的組態參數、元件相依性、生命週期和平台相容性。元件生命週期會定義安裝、執行和關閉元件的命令。如需詳細資訊,請參閱 AWS IoT Greengrass元件配方參考

    您可以定義 JSONYAML 格式的配方。

  • 文物

    組件可以有任意數量的加工品,這是組件二進製文件。成品可以包括指令碼、已編譯的程式碼、靜態資源,以及元件使用的任何其他檔案。元件也可以從元件相依性取用人工因素。

AWS IoT Greengrass提供預先建置的元件,您可以在應用程式中使用這些元件並部署到您的裝置。例如,您可以使用串流管理員元件將資料上傳到各種AWS服務,或者使用 CloudWatch 指標元件將自訂指標發佈到 Amazon CloudWatch。如需詳細資訊,請參閱 AWS-提供的組件

AWS IoT Greengrass策劃 Greengrass 組件的索引,稱為 Greengrass 軟件目錄。此目錄追蹤 Greengrass 社群所開發的 Greengrass 元件。您可以從此目錄下載、修改和部署元件,以建立 Greengrass 應用程式。如需詳細資訊,請參閱 社群元件

AWS IoT Greengrass核心軟體會以系統使用者和群組的身分執行元件 ggc_userggc_group,例如您在核心裝置上設定的和。這表示元件具有該系統使用者的權限。如果您使用的是沒有主目錄的系統使用者,則元件將無法使用 run 命令或使用主目錄的程式碼。這意味著您不能使用命pip install some-library --user令來安裝例如 Python 軟件包。如果您依照入門教學課程設定核心裝置,則您的系統使用者沒有主目錄。如需如何設定執行元件的使用者和群組的詳細資訊,請參閱設定執行元件的使用者

注意

AWS IoT Greengrass使用語義版本的組件。語義版本遵循一個主要的。 未成年人修補程式編號系統。例如,版本1.0.0代表元件的第一個主要發行版本。如需詳細資訊,請參閱語意版本規格

元件生命週

元件生命週期定義了 AWS IoT Greengrass Core 軟體用來安裝和執行元件的階段。每個階段都會定義指令碼,以及指定組件行為方式的其他資訊。例如,當您安裝元件時,AWS IoT Greengrass核心軟體會執行該元件的Install生命週期指令碼。核心裝置上的元件具有下列生命週期狀態:

  • NEW— 元件的配方和成品會載入到核心裝置上,但未安裝元件。元件進入此狀態後,便會執行其安裝指令碼

  • INSTALLED— 元件安裝在核心裝置上。元件會在執行安裝指令碼之後進入此狀態。

  • STARTING— 元件在核心裝置上啟動。元件會在執行啟動指令碼時進入此狀態。如果啟動成功,元件就會進入狀RUNNING態。

  • RUNNING— 元件正在核心裝置上執行。當元件執行其執行指令碼,或從其啟動指令碼具有作用中的背景處理程序時,就會進入此狀態。

  • FINISHED— 元件執行成功並完成其執行。

  • STOPPING— 元件正在停止。元件會在執行關機指令碼時進入此狀態。

  • ERRORED— 元件遇到錯誤。當元件進入此狀態時,它會執行其復原指令碼。然後,組件重新啟動以嘗試返回正常使用狀態。如果元件進入ERRORED狀態三次而未成功執行,則元件會變成BROKEN

  • BROKEN— 元件多次遇到錯誤,無法復原。您必須再次部署元件才能修正它。

元件類型

元件類型會指定AWS IoT Greengrass核心軟體執行元件的方式。元件可以有下列類型:

  • 原子核 () aws.greengrass.nucleus

    Greengrass 核是提供核心軟件的最小功能的組件。AWS IoT Greengrass如需詳細資訊,請參閱 Greengrass 核

  • 插件aws.greengrass.plugin

    Greengrass 核在與核相同的 Java 虛擬機(JVM)中運行一個插件組件。當您變更核心裝置上外掛程式元件的版本時,核心會重新啟動。要安裝和運行插件組件,您必須配置 Greengrass 核作為系統服務運行。如需詳細資訊,請參閱 將 Greengrass 核配置為系統服務

    由提供的幾個組件AWS是插件組件,這使它們能夠直接與 Greengrass 核接口。插件組件使用與 Greengrass 核相同的日誌文件。如需詳細資訊,請參閱 監控AWS IoT Greengrass日誌

  • 一般 (aws.greengrass.generic)

    Greengrass 核會執行一般元件的生命週期指令碼 (如果元件定義生命週期)。

    此類型是自訂元件的預設類型。

  • Lambda (aws.greengrass.lambda)

    Greengrass 核運行使用 Lambda 啟動器組件的 Lambda 函數組件。

    當您從 Lambda 函數建立元件時,該組件具有此類型。如需詳細資訊,請參閱 執行AWS Lambda函數

注意

我們不建議您在方案中指定元件類型。 AWS IoT Greengrass在建立元件時為您設定類型。