

終止支援通知：2026 年 10 月 7 日 AWS 將終止 的支援 AWS Proton。2026 年 10 月 7 日之後，您將無法再存取 AWS Proton 主控台或 AWS Proton 資源。您部署的基礎設施將保持不變。如需詳細資訊，請參閱[AWS Proton 服務棄用和遷移指南](https://docs.aws.amazon.com/proton/latest/userguide/proton-end-of-support.html)。

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

# 更新環境
<a name="ag-env-update"></a>

如果 AWS Proton 環境與環境帳戶連線相關聯，*請勿*更新或包含 `protonServiceRoleArn` 參數來更新或連線至環境帳戶連線。

只有在下列兩者都成立時，您才能更新為新的環境帳戶連線：
+ 環境帳戶連線是在建立目前環境帳戶連線的相同環境帳戶中建立的。
+ >環境帳戶連線與目前的環境相關聯。

如果環境*未*與環境帳戶連線相關聯，*請勿*更新或包含 `environmentAccountConnectionId` 參數。

您可以更新 `environmentAccountConnectionId`或 `protonServiceRoleArn` 參數和 值。您無法同時更新兩者。

如果您的環境使用自我管理佈建，*請勿*更新 `provisioning-repository` 參數，並*省略* `environmentAccountConnectionId`和 `protonServiceRoleArn` 參數。

更新環境有四種模式，如下列清單所述。使用 時 AWS CLI， `deployment-type` 欄位會定義 模式。使用 主控台時，這些模式會對應至從動作下拉式清單的**編輯**、**更新**、**更新次要**和**更新主要****動作**。

  
`NONE`  
在此模式中，*不會*發生部署。只會更新請求的中繼資料參數。

  
`CURRENT_VERSION`  
在此模式中，會使用您提供的新規格來部署和更新環境。只會更新請求的參數。使用此 時*，請勿*包含次要或主要版本參數`deployment-type`。

  
`MINOR_VERSION`  
在此模式中，環境會依預設使用中目前主要版本的已發佈、建議 （最新） 次要版本進行部署和更新。您也可以指定目前使用中主要版本的不同次要版本。

  
`MAJOR_VERSION`  
在此模式中，預設會使用發佈、建議 （最新） 主要和次要版本的目前範本來部署和更新環境。您也可以指定高於使用中主要版本的不同主要版本，以及次要版本 （選用）。

**Topics**
+ [更新 AWS 受管佈建環境](#ag-env-std-update)
+ [更新自我管理的佈建環境](#ag-env-pr-update)
+ [取消進行中的環境部署](#ag-env-cancel)

## 更新 AWS 受管佈建環境
<a name="ag-env-std-update"></a>

只有使用 佈建的環境才支援標準佈建 CloudFormation。

**使用 主控台或 AWS CLI 來更新您的環境。**

------
#### [ AWS 管理主控台 ]

**使用 主控台更新環境，如下列步驟所示。**

1. 

**選擇下列 2 個步驟中的 1 個。**

   1. 

**在環境清單中。**

      1. 在 [AWS Proton 主控台](https://console.aws.amazon.com//proton/)中，選擇**環境**。

      1. 在環境清單中，選擇您要更新之環境左側的選項按鈕。

   1. 

****在主控台環境詳細資訊頁面中。****

      1. 在 [AWS Proton 主控台](https://console.aws.amazon.com//proton/)中，選擇**環境**。

      1. 在環境清單中，選擇您要更新的環境名稱。

1. 

**選擇接下來 4 個步驟中的 1 個來更新您的環境。**

   1. 

**進行不需要環境部署的編輯。**

      1. 例如，變更描述。

         選擇**編輯**。

      1. 填寫表單並選擇**下一步**。

      1. 檢閱您的編輯，然後選擇**更新**。

   1. 

**僅更新中繼資料輸入。**

      1. 選擇**動作**，然後選擇**更新**。

      1. 填寫表單，然後選擇**編輯**。

      1. 填寫表單並選擇**下一步**，直到您到達**檢閱**頁面為止。

      1. 檢閱您的更新，然後選擇**更新**。

   1. 

**更新其環境範本的新次要版本。**

      1. 選擇**動作**，然後選擇**更新次要**。

      1. 填寫表單，然後選擇**下一步**。

      1. 填寫表單並選擇**下一步**，直到您到達**檢閱**頁面為止。

      1. 檢閱您的更新，然後選擇**更新**。

   1. 

**更新其環境範本的新主要版本。**

      1. 選擇**動作**，然後選擇**更新主要**。

      1. 填寫表單，然後選擇**下一步**。

      1. 填寫表單並選擇**下一步**，直到您到達**檢閱**頁面為止。

      1. 檢閱您的更新，然後選擇**更新**。

------
#### [ AWS CLI ]

**使用 AWS Proton AWS CLI 將環境更新為新的次要版本。**

執行下列命令來更新您的環境：

```
$ aws proton update-environment \
        --name "MySimpleEnv" \
        --deployment-type "MINOR_VERSION" \
        --template-major-version "1" \
        --template-minor-version "1" \
        --proton-service-role-arn arn:aws:iam::123456789012:role/service-role/ProtonServiceRole \
        --spec "file:///spec.yaml"
```

回應：

```
{
    "environment": {
        "arn": "arn:aws:proton:region-id:123456789012:environment/MySimpleEnv",
        "createdAt": "2021-04-02T17:29:55.472000+00:00",
        "deploymentStatus": "IN_PROGRESS",        
        "lastDeploymentAttemptedAt": "2021-04-02T17:48:26.307000+00:00",
        "lastDeploymentSucceededAt": "2021-04-02T17:29:55.472000+00:00",
        "name": "MySimpleEnv",
        "protonServiceRoleArn": "arn:aws:iam::123456789012:role/service-role/ProtonServiceRole",
        "templateMajorVersion": "1",
        "templateMinorVersion": "0",
        "templateName": "simple-env"
    }
}
```

執行下列命令以取得並確認狀態：

```
$ aws proton get-environment \
        --name "MySimpleEnv"
```

回應：

```
{
    "environment": {
        "arn": "arn:aws:proton:region-id:123456789012:environment/MySimpleEnv",
        "createdAt": "2021-04-02T17:29:55.472000+00:00",
        "deploymentStatus": "SUCCEEDED",
        "environmentName": "MySimpleEnv",
        "lastDeploymentAttemptedAt": "2021-04-02T17:48:26.307000+00:00",
        "lastDeploymentSucceededAt": "2021-04-02T17:48:26.307000+00:00",
        "protonServiceRoleArn": "arn:aws:iam::123456789012:role/service-role/ProtonServiceRole",
        "spec": "proton: EnvironmentSpec\n\nspec:\n  my_sample_input: hello\n  my_other_sample_input: everybody\n",
        "templateMajorVersion": "1",
        "templateMinorVersion": "1",
        "templateName": "simple-env"
    }
}
```

------

## 更新自我管理的佈建環境
<a name="ag-env-pr-update"></a>

只有使用 Terraform 佈建的環境才支援自我管理佈建。

**使用 主控台或 AWS CLI 來更新您的環境。**

------
#### [ AWS 管理主控台 ]

**使用 主控台更新環境，如下列步驟所示。**

1. 

**選擇下列 2 個步驟中的 1 個。**

   1. 

**在環境清單中。**

      1. 在 [AWS Proton 主控台](https://console.aws.amazon.com//proton/)中，選擇**環境**。

      1. 在環境清單中，選擇您要更新的環境範本左側的選項按鈕。

   1. 

****在主控台環境詳細資訊頁面中。****

      1. 在 [AWS Proton 主控台](https://console.aws.amazon.com//proton/)中，選擇**環境**。

      1. 在環境清單中，選擇您要更新的環境名稱。

1. 

**選擇接下來 4 個步驟中的 1 個來更新您的環境。**

   1. 

**進行不需要環境部署的編輯。**

      1. 例如，變更描述。

         選擇**編輯**。

      1. 填寫表單，然後選擇**下一步**。

      1. 檢閱您的編輯，然後選擇**更新**。

   1. 

**僅更新中繼資料輸入。**

      1. 選擇**動作**，然後選擇**更新**。

      1. 填寫表單，然後選擇**編輯**。

      1. 填寫表單並選擇**下一步**，直到您到達**檢閱**頁面為止。

      1. 檢閱您的更新，然後選擇**更新**。

   1. 

**更新其環境範本的新次要版本。**

      1. 選擇**動作**，然後選擇**更新次要**。

      1. 填寫表單，然後選擇**下一步**。

      1. 填寫表單並選擇**下一步**，直到您到達**檢閱**頁面為止。

      1. 檢閱您的更新，然後選擇**更新**。

   1. 

**更新其環境範本的新主要版本。**

      1. 選擇**動作**，然後選擇**更新主要**。

      1. 填寫表單，然後選擇**下一步**。

      1. 填寫表單並選擇**下一步**，直到您到達**檢閱**頁面為止。

      1. 檢閱您的更新，然後選擇**更新**。

------
#### [ AWS CLI ]

**使用 AWS CLI 將 Terraform 環境更新為具有自我管理佈建的新次要版本。**

1. 執行下列命令來更新您的環境：

   ```
   $ aws proton update-environment \
       --name "pr-environment" \
       --deployment-type "MINOR_VERSION" \
       --template-major-version "1" \
       --template-minor-version "1" \
       --provisioning-repository "branch=main,name=myrepos/env-repo,provider=GITHUB" \
       --spec "file://env-spec-mod.yaml"
   ```

   回應：

   ```
   {
       "environment": {
           "arn": "arn:aws:proton:region-id:123456789012:environment/pr-environment",
           "createdAt": "2021-11-18T21:09:15.745000+00:00",
           "deploymentStatus": "IN_PROGRESS",
           "lastDeploymentAttemptedAt": "2021-11-18T21:25:41.998000+00:00",
           "lastDeploymentSucceededAt": "2021-11-18T21:09:15.745000+00:00",
           "name": "pr-environment",
           "provisioningRepository": {
               "arn": "arn:aws:proton:region-id:123456789012:repository/github:myrepos/env-repo",
               "branch": "main",
               "name": "myrepos/env-repo",
               "provider": "GITHUB"
           },
           "templateMajorVersion": "1",
           "templateMinorVersion": "0",
           "templateName": "pr-env-template"
       }
   }
   ```

1. 執行下列命令以取得並確認狀態：

   ```
   $ aws proton get-environment \
       --name "pr-environment"
   ```

   回應：

   ```
   {
       "environment": {
           "arn": "arn:aws:proton:region-id:123456789012:environment/pr-environment",
           "createdAt": "2021-11-18T21:09:15.745000+00:00",
           "deploymentStatus": "SUCCEEDED",
           "lastDeploymentAttemptedAt": "2021-11-18T21:25:41.998000+00:00",
           "lastDeploymentSucceededAt": "2021-11-18T21:25:41.998000+00:00",
           "name": "pr-environment",
           "provisioningRepository": {
               "arn": "arn:aws:proton:region-id:123456789012:repository/github:myrepos/env-repo",
               "branch": "main",
               "name": "myrepos/env-repo",
               "provider": "GITHUB"
           },
           "spec": "proton: EnvironmentSpec\nspec:\n   ssm_parameter_value: \"test\"\n ssm_another_parameter_value: \"update\"\n",
           "templateMajorVersion": "1",
           "templateMinorVersion": "1",
           "templateName": "pr-env-template"
       }
   }
   ```

1. 檢閱 傳送的提取請求 AWS Proton。
   + 如果您核准請求，則佈建正在進行中。
   + 如果您拒絕請求，環境建立會取消。
   + 如果提取請求逾時，環境建立不會完成。

1. 提供佈建狀態給 AWS Proton。

   ```
   $ aws proton notify-resource-deployment-status-change \
       --resource-arn "arn:aws:proton:region-id:123456789012:environment/pr-environment" \
       --status "SUCCEEDED"
   ```

------

## 取消進行中的環境部署
<a name="ag-env-cancel"></a>

如果 `deploymentStatus`為 .`IN_PROGRESS` AWS Proton attempts 以取消部署，您可以嘗試取消環境更新部署。*不保證*成功取消。

當您取消更新部署時， 會 AWS Proton 嘗試取消部署，如下列步驟所列。

**使用 AWS受管佈建時， 會 AWS Proton 執行下列動作：**
+ 將部署狀態設定為 `CANCELLING`。
+ 停止進行中的部署，並在 時刪除部署建立的任何新資源`IN_PROGRESS`。
+ 將部署狀態設定為 `CANCELLED`。
+ 將資源的狀態還原為部署開始之前的狀態。

**使用自我管理佈建時， 會 AWS Proton 執行下列動作：**
+ 嘗試關閉提取請求，以防止合併對儲存庫的變更。
+ `CANCELLED` 如果提取請求已成功關閉，則將部署狀態設定為 。

如需如何取消環境部署的指示，請參閱 *AWS Proton API 參考*中的 [CancelEnvironmentDeployment](https://docs.aws.amazon.com/proton/latest/APIReference/API_CancelEnvironmentDeployment.html)。

您可以使用 主控台或 CLI 來取消正在進行的環境。

------
#### [ AWS 管理主控台 ]

**使用 主控台取消環境更新部署，如下列步驟所示。**

1. 在 [AWS Proton 主控台](https://console.aws.amazon.com//proton/)的導覽窗格中，選擇**環境**。

1. 在環境清單中，選擇具有您要取消之部署更新的環境名稱。

1. 如果您的更新部署狀態為**進行中**，請在環境詳細資訊頁面中選擇**動作**，然後選擇**取消部署**。

1. 模態會提示您確認是否要取消。選擇**取消部署**。

1. 您的更新部署狀態設定為**取消**，然後**取消**以完成取消。

------
#### [ AWS CLI ]

**使用 AWS Proton AWS CLI 取消 IN\$1PROGRESS 環境更新部署至新的次要版本 2。**

用於此範例的範本中包含等待條件，因此取消會在更新部署成功之前開始。

執行下列命令來取消更新：

```
$ aws proton cancel-environment-deployment \
        --environment-name "MySimpleEnv"
```

回應：

```
{
    "environment": {
        "arn": "arn:aws:proton:region-id:123456789012:environment/MySimpleEnv",
        "createdAt": "2021-04-02T17:29:55.472000+00:00",
        "deploymentStatus": "CANCELLING",
        "lastDeploymentAttemptedAt": "2021-04-02T18:15:10.243000+00:00",
        "lastDeploymentSucceededAt": "2021-04-02T17:48:26.307000+00:00",
        "name": "MySimpleEnv",
        "protonServiceRoleArn": "arn:aws:iam::123456789012:role/service-role/ProtonServiceRole",
        "spec": "proton: EnvironmentSpec\n\nspec:\n  my_sample_input: hello\n  my_other_sample_input: everybody\n",
        "templateMajorVersion": "1",
        "templateMinorVersion": "1",
        "templateName": "simple-env"
    }
}
```

執行下列命令以取得並確認狀態：」

```
$ aws proton get-environment \
        --name "MySimpleEnv"
```

回應：

```
{
    "environment": {
        "arn": "arn:aws:proton:region-id:123456789012:environment/MySimpleEnv",
        "createdAt": "2021-04-02T17:29:55.472000+00:00",
        "deploymentStatus": "CANCELLED",
        "deploymentStatusMessage": "User initiated cancellation.",
        "lastDeploymentAttemptedAt": "2021-04-02T18:15:10.243000+00:00",
        "lastDeploymentSucceededAt": "2021-04-02T17:48:26.307000+00:00",
        "name": "MySimpleEnv",
        "protonServiceRoleArn": "arn:aws:iam::123456789012:role/service-role/ProtonServiceRole",
        "spec": "proton: EnvironmentSpec\n\nspec:\n  my_sample_input: hello\n  my_other_sample_input: everybody\n",
        "templateMajorVersion": "1",
        "templateMinorVersion": "1",
        "templateName": "simple-env"
    }
}
```

------