選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

建立部署

焦點模式
建立部署 - AWS IoT Greengrass

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

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

您可以建立以物件或物件群組為目標的部署。

當您建立部署時,您可以設定要部署的軟體元件,以及部署任務如何推展到目標裝置。您可以在您提供給 的 JSON 檔案中定義部署 AWS CLI。

部署目標會決定您要在其中執行元件的裝置。若要部署到一個核心裝置,請指定物件。若要部署到多個核心裝置,請指定包含這些裝置的物件群組。如需如何設定物件群組的詳細資訊,請參閱《 AWS IoT 開發人員指南》中的靜態物件群組動態物件群組

請依照本節中的步驟來建立目標的部署。如需如何更新具有部署之目標上的軟體元件的詳細資訊,請參閱修訂部署

警告

CreateDeployment 操作可以從核心裝置解除安裝元件。如果元件存在於先前的部署中,而非新的部署中,核心裝置會解除安裝該元件。為了避免解除安裝元件,請先使用 ListDeployments 操作來檢查部署的目標是否已有現有的部署。然後,當您建立新的部署時,請使用 GetDeployment 操作從該現有部署開始。

建立部署 (AWS CLI)
  1. 建立名為 的檔案deployment.json,然後將下列 JSON 物件複製到 檔案。將 targetArn 取代為要用於部署之 AWS IoT 物件或物件群組的 ARN。物件和物件群組 ARNs的格式如下:

    • 物件:arn:aws:iot:region:account-id:thing/thingName

    • 物件群組:arn:aws:iot:region:account-id:thinggroup/thingGroupName

    { "targetArn": "targetArn" }
  2. 檢查部署目標是否有您要修改的現有部署。請執行下列操作:

    1. 執行下列命令來列出部署目標的部署。將 targetArn 取代為目標 AWS IoT 物件或物件群組的 ARN。

      aws greengrassv2 list-deployments --target-arn targetArn

      回應包含具有目標最新部署的清單。如果回應是空的,則目標沒有現有的部署,您可以跳到 步驟 3。否則,deploymentId請從回應中複製 以用於下一個步驟。

      注意

      您也可以修訂目標最新修訂版以外的部署。指定--history-filter ALL引數以列出目標的所有部署。然後,複製您要修改的部署 ID。

    2. 執行下列命令以取得部署的詳細資訊。這些詳細資訊包括中繼資料、元件和任務組態。將 deploymentId 取代為上一個步驟的 ID。

      aws greengrassv2 get-deployment --deployment-id deploymentId

      回應包含部署的詳細資訊。

    3. 將下列任一鍵/值對從上一個命令的回應複製到 deployment.json。您可以變更新部署的這些值。

      • deploymentName – 部署的名稱。

      • components – 部署的元件。若要解除安裝元件,請從此物件中移除它。

      • deploymentPolicies – 部署的政策。

      • iotJobConfiguration – 部署的任務組態。

      • tags – 部署的標籤。

  3. (選用) 定義部署的名稱。將 deploymentName 取代為部署的名稱。

    { "targetArn": "targetArn", "deploymentName": "deploymentName" }
  4. 新增每個元件以部署目標裝置。若要這樣做,請將索引鍵/值對新增至components物件,其中索引鍵是元件名稱,而值是包含該元件詳細資訊的物件。為您新增的每個元件指定下列詳細資訊:

    • version – 要部署的元件版本。

    • configurationUpdate – 要部署的組態更新。更新是一種修補程式操作,可修改元件在每個目標裝置上的現有組態,如果元件不存在於目標裝置上,則會修改元件的預設組態。您可以指定下列組態更新:

      • 重設更新 (reset) – (選用) JSON 指標清單,定義要重設為目標裝置上的預設值的組態值。 AWS IoT Greengrass 核心軟體會在套用合併更新之前套用重設更新。如需詳細資訊,請參閱重設更新

      • 合併更新 (merge) – (選用) 定義要合併到目標裝置的組態值的 JSON 文件。您必須將 JSON 文件序列化為字串。如需詳細資訊,請參閱合併更新

    • runWith – (選用) AWS IoT Greengrass 核心軟體用來在核心裝置上執行此元件程序的系統程序選項。如果您省略runWith物件中的參數, AWS IoT Greengrass Core 軟體會使用您在 Greengrass 核元件上設定的預設值。

      您可以指定下列任一選項:

      • posixUser – POSIX 系統使用者和選用的群組,用於在 Linux 核心裝置上執行此元件。如果指定,使用者和群組必須存在於每個 Linux 核心裝置上。以下列格式指定使用者和群組,並以冒號 (:) 分隔:user:group。群組為選用項目。如果您未指定群組,則 AWS IoT Greengrass Core 軟體會使用使用者的主要群組。如需詳細資訊,請參閱設定執行元件的使用者

      • windowsUser – 用來在 Windows 核心裝置上執行此元件的 Windows 使用者。使用者必須存在於每個 Windows 核心裝置上,且其名稱和密碼必須存放在 LocalSystem 帳戶的 Credentials Manager 執行個體中。如需詳細資訊,請參閱設定執行元件的使用者

        此功能適用於 Greengrass 核元件的 v2.5.0 和更新版本。

      • systemResourceLimits – 要套用至此元件程序的系統資源限制。您可以將系統資源限制套用至一般和非容器 Lambda 元件。如需詳細資訊,請參閱設定元件的系統資源限制

        您可以指定下列任一選項:

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

        • memory此元件的程序可在核心裝置上使用的 RAM 數量上限 (以 KB 為單位)。

        此功能適用於 2.4.0 版及更新版本的 Greengrass 核元件。目前 AWS IoT Greengrass 不支援 Windows 核心裝置上的此功能。

     

    範例基本組態更新

    下列範例components物件指定 來部署元件 com.example.PythonRuntime,該元件預期組態參數名為 pythonVersion

    { "targetArn": "targetArn", "deploymentName": "deploymentName", "components": { "com.example.PythonRuntime": { "componentVersion": "1.0.0", "configurationUpdate": { "merge": "{\"pythonVersion\":\"3.7\"}" } } } }
    範例 具有重設和合併更新的範例組態更新

    請考慮com.example.IndustrialDashboard具有下列預設組態的範例工業儀表板元件 。

    { "name": null, "mode": "REQUEST", "network": { "useHttps": true, "port": { "http": 80, "https": 443 }, }, "tags": [] }

    下列組態更新會指定下列指示:

    1. 將 HTTPS 設定重設為其預設值 (true)。

    2. 將工業標籤清單重設為空白清單。

    3. 合併工業標籤清單,以識別兩個鍋爐的溫度和壓力資料串流。

    { "reset": [ "/network/useHttps", "/tags" ], "merge": { "tags": [ "/boiler/1/temperature", "/boiler/1/pressure", "/boiler/2/temperature", "/boiler/2/pressure" ] } }

    下列範例components物件會指定 部署此工業儀表板元件和組態更新。

    { "targetArn": "targetArn", "deploymentName": "deploymentName", "components": { "com.example.IndustrialDashboard": { "componentVersion": "1.0.0", "configurationUpdate": { "reset": [ "/network/useHttps", "/tags" ], "merge": "{\"tags\":[\"/boiler/1/temperature\",\"/boiler/1/pressure\",\"/boiler/2/temperature\",\"/boiler/2/pressure\"]}" } } } }
  5. (選用) 定義部署的部署政策。您可以設定核心裝置何時可以安全地套用部署,或如果核心裝置無法套用部署時該怎麼辦。若要這麼做,請將deploymentPolicies物件新增至 deployment.json,然後執行下列任何動作:

    1. (選用) 指定元件更新政策 (componentUpdatePolicy)。此政策會定義部署是否允許元件延遲更新,直到準備好更新為止。例如,元件可能需要清除資源或完成關鍵動作,才能重新啟動以套用更新。此政策也會定義元件必須回應更新通知的時間量。

      此政策是具有下列參數的物件:

      • action – (選用) 是否要通知元件,並等待元件準備好更新時回報。您可以從以下選項中選擇:

        • NOTIFY_COMPONENTS – 部署會在停止前向每個元件發出通知並更新該元件。元件可以使用 SubscribeToComponentUpdates IPC 操作來接收這些通知。

        • SKIP_NOTIFY_COMPONENTS – 部署不會向元件發出通知,也不會等到可安全更新元件時才更新。

        預設為 NOTIFY_COMPONENTS

      • timeoutInSeconds 每個元件必須使用 DeferComponentUpdate IPC 操作回應更新通知的時間,以秒為單位。如果元件未在此時間內回應,則部署會在核心裝置上繼續。

        預設為 60 秒。

    2. (選用) 指定組態驗證政策 (configurationValidationPolicy)。此政策定義每個元件必須驗證部署中組態更新的時間長度。元件可以使用 SubscribeToValidateConfigurationUpdates IPC 操作來訂閱通知,以取得自己的組態更新。然後,元件可以使用 SendConfigurationValidityReport IPC 操作來告知 AWS IoT Greengrass Core 軟體組態更新是否有效。如果組態更新無效,部署會失敗。

      此政策是具有下列參數的物件:

      • timeoutInSeconds (選用) 每個元件驗證組態更新所需的秒數。如果元件未在此時間內回應,則部署會在核心裝置上繼續。

        預設為 30 秒。

    3. (選用) 指定失敗處理政策 (failureHandlingPolicy)。此政策是字串,可定義部署失敗時是否要復原裝置。您可以從以下選項中選擇:

      • ROLLBACK – 如果核心裝置上的部署失敗,則 AWS IoT Greengrass 核心軟體會將該核心裝置復原為先前的組態。

      • DO_NOTHING – 如果在核心裝置上部署失敗,則 AWS IoT Greengrass 核心軟體會保留新的組態。如果新組態無效,這可能會導致元件損壞。

      預設為 ROLLBACK

    您在 中的部署deployment.json可能看起來類似下列範例:

    { "targetArn": "targetArn", "deploymentName": "deploymentName", "components": { "com.example.IndustrialDashboard": { "componentVersion": "1.0.0", "configurationUpdate": { "reset": [ "/network/useHttps", "/tags" ], "merge": "{\"tags\":[\"/boiler/1/temperature\",\"/boiler/1/pressure\",\"/boiler/2/temperature\",\"/boiler/2/pressure\"]}" } } }, "deploymentPolicies": { "componentUpdatePolicy": { "action": "NOTIFY_COMPONENTS", "timeoutInSeconds": 30 }, "configurationValidationPolicy": { "timeoutInSeconds": 60 }, "failureHandlingPolicy": "ROLLBACK" } }
  6. (選用) 定義部署如何停止、推展或逾時。 AWS IoT Greengrass AWS IoT Core 使用任務將部署傳送至核心裝置,因此這些選項與 AWS IoT Core 任務的組態選項相同。如需詳細資訊,請參閱《 AWS IoT 開發人員指南》中的任務推出和中止組態

    若要定義任務選項,請將iotJobConfiguration物件新增至 deployment.json。然後,定義要設定的選項。

    您在 中的部署deployment.json可能看起來類似下列範例:

    { "targetArn": "targetArn", "deploymentName": "deploymentName", "components": { "com.example.IndustrialDashboard": { "componentVersion": "1.0.0", "configurationUpdate": { "reset": [ "/network/useHttps", "/tags" ], "merge": "{\"tags\":[\"/boiler/1/temperature\",\"/boiler/1/pressure\",\"/boiler/2/temperature\",\"/boiler/2/pressure\"]}" } } }, "deploymentPolicies": { "componentUpdatePolicy": { "action": "NOTIFY_COMPONENTS", "timeoutInSeconds": 30 }, "configurationValidationPolicy": { "timeoutInSeconds": 60 }, "failureHandlingPolicy": "ROLLBACK" }, "iotJobConfiguration": { "abortConfig": { "criteriaList": [ { "action": "CANCEL", "failureType": "ALL", "minNumberOfExecutedThings": 100, "thresholdPercentage": 5 } ] }, "jobExecutionsRolloutConfig": { "exponentialRate": { "baseRatePerMinute": 5, "incrementFactor": 2, "rateIncreaseCriteria": { "numberOfNotifiedThings": 10, "numberOfSucceededThings": 5 } }, "maximumPerMinute": 50 }, "timeoutConfig": { "inProgressTimeoutInMinutes": 5 } } }
  7. (選用) 為部署新增標籤 (tags)。如需詳細資訊,請參閱標記您的 AWS IoT Greengrass Version 2 資源

  8. 執行下列命令,從 建立部署deployment.json

    aws greengrassv2 create-deployment --cli-input-json file://deployment.json

    回應包含可識別此部署deploymentId的 。您可以使用部署 ID 來檢查部署的狀態。如需詳細資訊,請參閱檢查部署狀態

隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。