部署 - AWS IoT Greengrass

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

部署

使用指deployment令與核心裝置上的本機元件互動。

若要監視本機部署的進度,請使用status子指令。您無法使用主控台監視本機部署的進度。

建立

使用指定的元件配方、成品和執行階段引數來建立或更新本機部署。

概要
greengrass-cli deployment create --recipeDir path/to/component/recipe [--artifactDir path/to/artifact/folder ] [--update-config {component-configuration}] [--groupId <thing-group>] [--merge "<component-name>=<component-version>"]... [--runWith "<component-name>:posixUser=<user-name>[:<group-name>]"]... [--systemLimits "{component-system-resource-limits}]"]... [--remove <component-name>,...] [--failure-handling-policy <policy name[ROLLBACK, DO_NOTHING]>]
Arguments (引數)
  • --recipeDir-r。 包含元件 recipe 檔案之資料夾的完整路徑。

  • --artifactDir-a。 包含您要包含在部署中的成品檔案之資料夾的完整路徑。人工因素資料夾必須包含下列目錄結構:

    /path/to/artifact/folder/<component-name>/<component-version>/<artifacts>
  • --update-config-c。 部署的組態引數,以 JSON 字串或 JSON 檔案形式提供。JSON 字串應採用下列格式:

    { \ "componentName": { \ "MERGE": {"config-key": "config-value"}, \ "RESET": ["path/to/reset/"] \ } \ }

    MERGE和區RESET分大小寫,且必須為大寫。

  • --groupId-g。 部署的目標物件群組。

  • --merge-m。 您要新增或更新的目標元件的名稱和版本。您必須以格式提供元件資訊<component>=<version>。為每個要指定的其他元件使用不同的引數。如果需要,請使用--runWith引數來posixUser提供執行元件的posixGroup、和windowsUser資訊。

  • --runWith。 執行一般或 Lambda 元件的posixUserposixGroup、和windowsUser資訊。您必須以格式提供此資訊<component>:{posixUser|windowsUser}=<user>[:<=posixGroup>]。例如,您可以指定HelloWorld:posixUser=ggc_user:ggc_groupHelloWorld:windowsUser=ggc_user。為每個要指定的其他選項使用單獨的引數。

    如需詳細資訊,請參閱 設定執行元件的使用者

  • --systemLimits。 系統資源限制適用於核心裝置上的一般和非容器化 Lambda 元件的程序。您可以設定每個元件的處理序可以使用的 CPU 和 RAM 使用量上限。指定序列化的 JSON 物件或 JSON 檔案的檔案路徑。JSON 物件必須具有下列格式。

    { \ "componentName": { \ "cpus": cpuTimeLimit, \ "memory": memoryLimitInKb \ } \ }

    您可以為每個元件設定下列系統資源限制:

    • cpus此元件的處理序可以在核心裝置上使用的 CPU 時間上限。核心裝置的 CPU 總時間等於裝置的 CPU 核心數。例如,在具有 4 個 CPU 核心的核心裝置上,您可以將此值設定為2將此元件的處理序限制為每個 CPU 核心的 50% 使用率。在具有 1 個 CPU 核心的裝置上,您可以將此值設定0.25為將此元件的處理序限制為 CPU 使用率 25%。如果您將此值設定為大於 CPU 核心數目的數字, AWS IoT Greengrass 核心軟體就不會限制元件的 CPU 使用率。

    • memory此元件的處理序可在核心裝置上使用的最大 RAM 量 (以 KB 為單位)

    如需詳細資訊,請參閱 設定元件的系統資源限制

    此功能適用於 Linux 核心裝置上的 Greengrass 核心元件和 Greengrass CLI 的 v2.4.0 及更新版本。 AWS IoT Greengrass 目前在 Windows 核心裝置上不支援此功能。

  • --remove。 您要從本機部署移除的目標元件名稱。若要移除已從雲端部署合併的元件,您必須以下列格式提供目標物群組的群組 ID:

    Greengrass nucleus v2.4.0 and later
    --remove <component-name> --groupId <group-name>
    Earlier than v2.4.0
    --remove <component-name> --groupId thinggroup/<group-name>
  • --failure-handling-policy。 定義部署失敗時採取的動作。您可以指定兩個動作:

    • ROLLBACK

    • DO_NOTHING

    此功能適用於 v2.11.0 及更高版本的。Greengrass 核

輸出

下列範例顯示執行此命令時產生的輸出。

$ sudo greengrass-cli deployment create \ --merge MyApp1=1.0.0 \ --merge MyApp2=1.0.0 --runWith MyApp2:posixUser=ggc_user \ --remove MyApp3 \ --recipeDir recipes/ \ --artifactDir artifacts/ Local deployment has been submitted! Deployment Id: 44d89f46-1a29-4044-ad89-5151213dfcbc

取消

取消指定的部署。

概要
greengrass-cli deployment cancel -i <deployment-id>
引數

-i。 要取消之部署的唯一識別碼。部署 ID 會在create命令的輸出中傳回。

輸出

列出

擷取最近 10 個本機部署的狀態。

概要
greengrass-cli deployment list
Arguments (引數)

輸出

下列範例顯示執行此命令時產生的輸出。根據部署狀態而定,輸出會顯示下列其中一個狀態值:IN_PROGRESSSUCCEEDED、或FAILED

$ sudo greengrass-cli deployment list 44d89f46-1a29-4044-ad89-5151213dfcbc: SUCCEEDED Created on: 6/27/23 11:05 AM

status

擷取特定部署的狀態。

概要
greengrass-cli deployment status -i <deployment-id>
Arguments (引數)

-i。 部署的識別碼。

輸出

下列範例顯示執行此命令時產生的輸出。根據部署狀態而定,輸出會顯示下列其中一個狀態值:IN_PROGRESSSUCCEEDED、或FAILED

$ sudo greengrass-cli deployment status -i 44d89f46-1a29-4044-ad89-5151213dfcbc 44d89f46-1a29-4044-ad89-5151213dfcbc: FAILED Created on: 6/27/23 11:05 AM Detailed Status: <Detailed deployment status> Deployment Error Stack: List of error codes Deployment Error Types: List of error types Failure Cause: Cause