

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

# 修訂部署
<a name="revise-deployments"></a>

每個目標物件或物件群組一次可以有一個作用中的部署。當您為已經有部署的目標建立部署時，新部署中的軟體元件會取代先前部署的軟體元件。如果新部署未定義先前部署定義的元件，則 AWS IoT Greengrass Core 軟體會從目標核心裝置移除該元件。您可以修改現有的部署，以免將核心裝置上執行的元件從先前的部署移除到目標。

若要修改部署，您可以建立從先前部署中存在的相同元件和組態開始的部署。您可以使用 [CreateDeployment](https://docs.aws.amazon.com/greengrass/v2/APIReference/API_CreateDeployment.html) 操作，這是您用來[建立部署](create-deployments.md)的相同操作。

**修改部署 (AWS CLI)**

1. <a name="revise-deployment-list-deployments-intro"></a>執行下列命令來列出部署目標的部署。將 *targetArn* 取代為目標 AWS IoT 物件或物件群組的 ARN。

   ```
   aws greengrassv2 list-deployments --target-arn targetArn
   ```

   回應包含具有目標最新部署的清單。`deploymentId` 從回應中複製 以用於下一個步驟。
**注意**  <a name="revise-deployment-list-deployments-revision-note"></a>
您也可以修改目標最新修訂版以外的部署。指定`--history-filter ALL`引數以列出目標的所有部署。然後，複製您要修改的部署 ID。

1. <a name="revise-deployment-get-deployment"></a>執行下列命令以取得部署的詳細資訊。這些詳細資訊包括中繼資料、元件和任務組態。將 *deploymentId* 取代為上一個步驟的 ID。

   ```
   aws greengrassv2 get-deployment --deployment-id deploymentId
   ```

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

1. 建立名為 `deployment.json` 的文件，並將前一個命令的回應複製到檔案中。

1. 從 JSON 物件的 `deployment.json` 中移除以下鍵值組：
   + `deploymentId`
   + `revisionId`
   + `iotJobId`
   + `iotJobArn`
   + `creationTimestamp`
   + `isLatestForTarget`
   + `deploymentStatus`

   [CreateDeployment](https://docs.aws.amazon.com/greengrass/v2/APIReference/API_CreateDeployment.html) 操作預期承載具有下列結構。

   ```
   {
     "targetArn": "String",
     "components": Map of components,
     "deploymentPolicies": DeploymentPolicies,
     "iotJobConfiguration": DeploymentIoTJobConfiguration,
     "tags": Map of tags
   }
   ```

1. 在 `deployment.json` 中，執行下列任何一項：
   + 變更部署的名稱 (`deploymentName`)。
   + 變更部署的元件 (`components`)。
   + 變更部署的政策 (`deploymentPolicies`)。
   + 變更部署的任務組態 (`iotJobConfiguration`)。
   + 變更部署的標籤 (`tags`)。

   如需如何定義這些部署詳細資訊的詳細資訊，請參閱[建立部署](create-deployments.md)。

1. 執行下列命令，從 建立部署`deployment.json`。

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

   <a name="check-new-deployment-status"></a>回應包含可識別此部署`deploymentId`的 。您可以使用部署 ID 來檢查部署的狀態。如需詳細資訊，請參閱[檢查部署狀態](check-deployment-status.md#check-cloud-deployment-status)。