開發 AWS IoT Greengrass 元件 - AWS IoT Greengrass

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

開發 AWS IoT Greengrass 元件

您可以在 Greengrass 核心裝置上開發和測試元件。因此,您可以建立和重複您的 AWS IoT Greengrass 軟體,而無需與 互動 AWS 雲端。當您完成元件的版本時,您可以在雲端 AWS IoT Greengrass 中將其上傳至 ,以便您和您的團隊可以將元件部署到機群中的其他裝置。如需如何部署元件的詳細資訊,請參閱將AWS IoT Greengrass元件部署到裝置

每個元件都由配方成品組成。

  • 配方

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

    您可以 JSONYAML 格式定義配方。

  • 偽影

    元件可以有任意數量的成品,這些成品是元件二進位檔。成品可以包含指令碼、編譯程式碼、靜態資源,以及元件使用的任何其他檔案。元件也可以使用元件相依性的成品。

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

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

AWS IoT Greengrass 核心軟體會以您在核心裝置上設定的系統使用者和群組身分執行元件ggc_group,例如 ggc_user和 。這表示元件具有該系統使用者的許可。如果您使用沒有主目錄的系統使用者,則元件無法使用使用主目錄的執行命令或程式碼。這表示您無法使用 pip install some-library --user命令來安裝 Python 套件。如果您遵循入門教學來設定核心裝置,則您的系統使用者沒有主目錄。如需如何設定執行元件之使用者和群組的詳細資訊,請參閱設定執行元件的使用者

注意

AWS IoT Greengrass 使用元件的語意版本。語意版本遵循 major.minor.patch 號碼系統。例如,版本1.0.0代表元件的第一個主要版本。如需詳細資訊,請參閱語意版本規格

元件生命週期

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

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

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

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

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

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

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

  • ERRORED – 元件發生錯誤。當元件進入此狀態時,它會執行其復原指令碼。然後,元件會重新啟動,嘗試恢復正常使用。如果元件在未成功執行的情況下進入 ERRORED 狀態三次,則元件會變成 BROKEN

  • BROKEN – 元件多次發生錯誤,無法復原。您必須再次部署元件才能修正。

元件類型

元件類型指定 AWS IoT Greengrass Core 軟體如何執行元件。元件可以有下列類型:

  • Nucleus (aws.greengrass.nucleus)

    Greengrass 核是提供 AWS IoT Greengrass Core 軟體最低功能的元件。如需詳細資訊,請參閱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函數

注意

我們不建議您在 recipe 中指定元件類型。當您建立元件時, 會為您 AWS IoT Greengrass 設定 類型。