View a markdown version of this page

更新環境 - AWS Proton

終止支援通知:2026 年 10 月 7 日 AWS 將終止 的支援 AWS Proton。2026 年 10 月 7 日之後,您將無法再存取 AWS Proton 主控台或 AWS Proton 資源。您部署的基礎設施將保持不變。如需詳細資訊,請參閱AWS Proton 服務棄用和遷移指南。

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

更新環境

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

只有在下列兩者都成立時,您才能更新為新的環境帳戶連線:

  • 環境帳戶連線是在建立目前環境帳戶連線的相同環境帳戶中建立的。

  • > 環境帳戶連線與目前的環境相關聯。

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

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

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

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

NONE

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

CURRENT_VERSION

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

MINOR_VERSION

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

MAJOR_VERSION

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

更新 AWS 受管佈建環境

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

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

AWS 管理主控台
使用 主控台更新環境,如下列步驟所示。
  1. 選擇下列 2 個步驟中的 1 個。
    1. 在環境清單中。
      1. 在 AWS Proton 主控台中,選擇環境。

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

    2. 在主控台環境詳細資訊頁面中。
      1. 在 AWS Proton 主控台中,選擇環境。

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

  2. 選擇接下來 4 個步驟中的 1 個來更新您的環境。
    1. 進行不需要環境部署的編輯。
      1. 例如,變更描述。

        選擇編輯。

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

      3. 檢閱您的編輯,然後選擇更新。

    2. 僅更新中繼資料輸入。
      1. 選擇動作,然後選擇更新。

      2. 填寫表單,然後選擇編輯。

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

      4. 檢閱您的更新,然後選擇更新。

    3. 更新其環境範本的新次要版本。
      1. 選擇動作,然後選擇更新次要。

      2. 填寫表單,然後選擇下一步。

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

      4. 檢閱您的更新,然後選擇更新。

    4. 更新其環境範本的新主要版本。
      1. 選擇動作,然後選擇更新主要。

      2. 填寫表單,然後選擇下一步。

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

      4. 檢閱您的更新,然後選擇更新。

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" } }

更新自我管理的佈建環境

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

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

AWS 管理主控台
使用 主控台更新環境,如下列步驟所示。
  1. 選擇下列 2 個步驟中的 1 個。
    1. 在環境清單中。
      1. 在 AWS Proton 主控台中,選擇環境。

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

    2. 在主控台環境詳細資訊頁面中。
      1. 在 AWS Proton 主控台中,選擇環境。

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

  2. 選擇接下來 4 個步驟中的 1 個來更新您的環境。
    1. 進行不需要環境部署的編輯。
      1. 例如,變更描述。

        選擇編輯。

      2. 填寫表單,然後選擇下一步。

      3. 檢閱您的編輯,然後選擇更新。

    2. 僅更新中繼資料輸入。
      1. 選擇動作,然後選擇更新。

      2. 填寫表單,然後選擇編輯。

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

      4. 檢閱您的更新,然後選擇更新。

    3. 更新其環境範本的新次要版本。
      1. 選擇動作,然後選擇更新次要。

      2. 填寫表單,然後選擇下一步。

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

      4. 檢閱您的更新,然後選擇更新。

    4. 更新其環境範本的新主要版本。
      1. 選擇動作,然後選擇更新主要。

      2. 填寫表單,然後選擇下一步。

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

      4. 檢閱您的更新,然後選擇更新。

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" } }
  2. 執行下列命令以取得並確認狀態:

    $ 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" } }
  3. 檢閱 傳送的提取請求 AWS Proton。

    • 如果您核准請求,則佈建正在進行中。

    • 如果您拒絕請求,環境建立會取消。

    • 如果提取請求逾時,則環境建立未完成。

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

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

取消進行中的環境部署

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

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

使用 AWS受管佈建時, 會 AWS Proton 執行下列動作:
  • 將部署狀態設定為 CANCELLING。

  • 停止進行中的部署,並在 時刪除部署建立的任何新資源IN_PROGRESS。

  • 將部署狀態設定為 CANCELLED。

  • 將資源的狀態還原為部署開始之前的狀態。

使用自我管理佈建時, 會 AWS Proton 執行下列動作:
  • 嘗試關閉提取請求,以防止合併對儲存庫的變更。

  • CANCELLED 如果提取請求已成功關閉,則將部署狀態設定為 。

如需如何取消環境部署的指示,請參閱 AWS Proton API 參考中的 CancelEnvironmentDeployment。

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

AWS 管理主控台

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

  1. 在 AWS Proton 主控台的導覽窗格中,選擇環境。

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

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

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

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

AWS CLI

使用 AWS Proton AWS CLI 取消 IN_PROGRESS 環境更新部署至新的次要版本 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" } }