本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
建立子部署
注意
子部署功能在版本 2.9.0 及更新版本中提供。您無法將組態部署至具有較早版本 Greengrass 核心元件的子部署。
子部署是以父系部署中較小的裝置子集為目標的部署。您可以使用子部署將組態部署到較小的裝置子集。您也可以建立子部署,以便在父系部署中的一或多個裝置失敗時重試失敗的父系部署。使用此功能,您可以選取該父系部署中失敗的設備,並建立子部署以測試組態,直到子部署成功為止。一旦子部署成功,您可以將該組態重新部署至父系部署。
請依照本節中的步驟來建立子部署並檢查其狀態。如需如何建立部署的詳細資訊,請參閱建立部署。
若要建立子部署 (AWS CLI)
-
執行以下命令來擷取實物群組的最新部署。將命令中的 ARN 取代為要查詢的物群組的 ARN 取代命令中的 ARN。設定
為--history-filter
LATEST_ONLY
以查看該物件群組的最新部署。aws greengrassv2 list-deployments
--target-arn
arn:aws:iot:region
:account-id
:thinggroup/thingGroupName
--history-filter
LATEST_ONLY
-
將回應
deploymentId
複製到要在下一個步驟中使用的list-deployments指令。 -
執行以下命令以下命令來擷取部署狀態。以要查詢的部署 ID 取
代。deploymentId
aws greengrassv2 get-deployment
--deployment-id
deploymentId
-
將回應複製到要在下一步中使用的get-deployment指令。
iotJobId
-
執行以下命令來擷取指定工作的工作執行清單。將以上一個步驟
iotJobId
中的步驟取代Jobid
。將狀態
替換為您要過濾的狀態。您可以下列狀態篩選結果:-
QUEUED
-
IN_PROGRESS
-
SUCCEEDED
-
FAILED
-
TIMED_OUT
-
REJECTED
-
REMOVED
-
CANCELED
aws iot list-job-executions-for-job
--job-id
jobID
--status
status
-
-
為子部署建立新的AWS IoT物件群組,或使用現有的物件群組。然後,將AWS IoT物件新增至此物件群組。您可以使用物件群組來管理 Greengrass 核心裝置的叢集。將軟體元件部署到裝置時,您可以針對個別裝置或裝置群組。您可以使用作用中 Greengrass 部署將設備新增至物件群組。新增之後,您就可以將該物件群組的軟體元件部署到該裝置。
若要建立新物群組並將您的裝置新增至實物群組群組,請執行以下命令:
-
刪除實AWS IoT物群組。
MyGreengrassCoreGroup
以新物件群組的名稱取代。您不能在物物群組名稱中使用冒號 (:)。注意
如果子部署的物件群組與其中一個物件群組搭配使用
parentTargetArn
,則無法在不同的父系叢集中重複使用該物件群組。如果已使用物件群組為另一個叢集建立子部署,則 API 會傳回錯誤。aws iot create-thing-group
--thing-group-name
MyGreengrassCoreGroup
如果要求成功,回應類似於以下範例的回應:
{ "thingGroupName": "MyGreengrassCoreGroup", "thingGroupArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/
MyGreengrassCoreGroup
", "thingGroupId": "4df721e1-ff9f-4f97-92dd-02db4e3f03aa" } -
將佈建的 Greengrass 核心新增至您的物件群組。以下命令執行以下命令:
-
MyGreengrassCore
替換為您佈建的 Greengrass 核心的名稱。 -
MyGreengrassCoreGroup
以物件群組的名稱取代。
aws iot add-thing-to-thing-group
--thing-name
MyGreengrassCore
--thing-group-name
MyGreengrassCoreGroup
如果請求成功,命令沒有任何輸出。
-
-
-
創建一個名為的文件
deployment.json
,然後將以下 JSON 對象複製到該文件中。以要針對子部署作為目標之AWS IoT物件群組的 ARN 取代 Tar
n。子部署目標只能是物群組。物群組 ARN 採用以下格式格式:-
物件群組 —
arn:aws:iot:
region
:account-id
:thinggroup/thingGroupName
{ "targetArn": "
targetArn
" } -
-
再次執行以下命令以下命令來取得原始部署的詳細資料。這些詳細資料包括中繼資料、元件和工作組態。使用來
自的 ID 取代部署
ID步驟 1。您可以使用此部署規劃來設定子部署,並視需要進行變更。aws greengrassv2 get-deployment
--deployment-id
deploymentId
回應包含部署的詳細資料。將以下任何鍵值對從get-deployment命令的響應複製到
deployment.json
。您可以變更子部署的這些值。如需此命令的詳細資訊,請參閱GetDeployment。-
components
— 部署的元件。若要解除安裝元件,請將其從此物件中移除。 -
deploymentName
— 部署的名稱。 -
deploymentPolicies
— 部署的原則。 -
iotJobConfiguration
— 部署的工作組態。 -
parentTargetArn
— 父系部署的目標。 -
tags
— 部署的標籤。
-
-
執行以下命令以下命令以下命令來建立子部署
deployment.json
。將子部署名稱
取代為子部署的名稱。aws greengrassv2 create-deployment
--deployment-name
subdeploymentName
--cli-input-json
file://deployment.json回應包括識別
deploymentId
此子部署的。您可以使用部署 ID 來檢查部署的狀態。如需詳細資訊,請參閱檢查部署狀態。 -
如果子部署成功,您可以使用其組態來修訂父項部署。複製您
deployment.json
在上一個步驟中使用的。以父系部署的 ARN 取代 JSON 檔案targetArn
中的,並執行下列命令,以使用此新組態建立父系部署。注意
如果您建立父系叢集的新部署修訂版本,它會取代該父系部署的所有部署修訂版本和子部署。如需詳細資訊,請參閱版本部署。
aws greengrassv2 create-deployment
--cli-input-json
file://deployment.json回應包括識別
deploymentId
此部署的。您可以使用部署 ID 來檢查部署的狀態。如需詳細資訊,請參閱 檢查部署狀態。