環境を更新する - AWS Proton

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

環境を更新する

AWS Proton 環境が環境アカウント接続に関連付けられている場合、環境アカウント接続の更新や接続のための protonServiceRoleArn パラメータを更新したり含めたりしないでください。

新しい環境アカウント接続に更新できるのは、次の両方に当てはまる場合にのみです。

  • 環境アカウント接続は、現在の環境アカウント接続を作成したときと同じ環境アカウントで作成しました。

  • >環境アカウント接続は、現在の環境に関連付けられています。

環境が環境アカウント接続に関連付けられていない場合、environmentAccountConnectionId パラメータを更新したり含めたりしないでください。

environmentAccountConnectionId または protonServiceRoleArn のパラメータと値を更新できます。両方を更新することはできません。

環境でセルフマネージドプロビジョニングを使用する場合、provisioning-repository パラメータを更新せずに environmentAccountConnectionId パラメータおよび protonServiceRoleArn パラメータを省略してください。

環境を更新しようとする場合、以下に挙げるように 4 つのモードがあります。AWS CLI を使用する際には、deployment-type フィールドでモードを定義します。コンソールを使用する場合、これらのモードは [Actions (アクション)] ドロップダウンリストに表示される [Edit (編集)] 、[Update (更新)]、[Update minor (マイナー更新)] 、および [Update major (メジャー更新)] にマップされます。

NONE

このモードでは、デプロイは発生しません。リクエストしたメタデータパラメータのみが更新されます。

CURRENT_VERSION

このモードでは、指定した新しい仕様で環境がデプロイされ更新されます。リクエストしたパラメータのみが更新されます。この deployment-type を使用する場合、マイナーバージョンまたはメジャーバージョンのパラメータを含めないでください。

MINOR_VERSION

このモードでは、環境がデプロイされ、デフォルトで使用中の現在のメジャーバージョンの公開され推奨される (最新の) マイナーバージョンで更新されます。また、使用中の現在のメジャーバージョンについて別のマイナーバージョンを指定することもできます。

MAJOR_VERSION

このモードでは、環境がデプロイされ、デフォルトで現在のテンプレートの公開され推奨される (最新の) メジャーとマイナーバージョンで更新されます。使用中のメジャーバージョンやマイナーバージョン (オプション) よりも高いメジャーバージョンも指定できます。

AWS マネージドプロビジョニング環境を更新します。

標準プロビジョニングは AWS CloudFormation でプロビジョニングする環境によってのみサポートされます。

コンソールまたは AWS CLI を使用して環境を更新します。

AWS Management Console
以下に示す手順に従って、コンソールで環境を更新します。
  1. 次の 2 つのステップのうちの 1 つを選択します。
    1. 環境のリストで、以下の操作をします。
      1. AWS Proton コンソールで、[環境] を選択します。

      2. 環境のリストで、更新したい環境の左にあるラジオボタンを選択します。

    2. コンソール環境の詳細ページで以下の操作をします。
      1. AWS Proton コンソールで、[環境] を選択します。

      2. 環境のリストで、更新したい環境の名前を選択します。

  2. 次の 4 つのステップのいずれかを選択して環境を更新します。
    1. 環境デプロイを要求しない編集を加えるには
      1. たとえば、説明を変更するには、次のように操作します。

        [Edit (編集)] を選択します。

      2. フォームに必要な値を入力して [Next (次へ)] を選択します。

      3. 編集内容を見直して [Update (更新)] を選択します。

    2. メタデータ入力のみを更新するには
      1. [Actions (アクション)] を選択してから [Update (更新)] を選択します。

      2. フォームに必要な値を入力して [Edit (編集)] を選択します。

      3. フォームに必要な値を入力し、[Review (確認)] ページが表示されるまで [Next (次へ)] を選択します。

      4. 更新内容を見直して [Update (更新)] を選択します。

    3. 環境テンプレートの新しいマイナーバージョンを更新するには
      1. [Actions (アクション)] を選択してから [Update minor (マイナー更新)] を選択します。

      2. フォームに必要な値を入力して [Next (次へ)] を選択します。

      3. フォームに必要な値を入力し、[Review (確認)] ページが表示されるまで [Next (次へ)] を選択します。

      4. 更新内容を見直して [Update (更新)] を選択します。

    4. 環境テンプレートの新しいメジャーバージョンを更新するには
      1. [Actions (アクション)] を選択してから [Update major (メジャー更新)] を選択します。

      2. フォームに必要な値を入力して [Next (次へ)] を選択します。

      3. フォームに必要な値を入力し、[Review (確認)] ページが表示されるまで [Next (次へ)] を選択します。

      4. 更新内容を見直して [Update (更新)] を選択します。

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 Management Console
以下に示す手順に従って、コンソールで環境を更新します。
  1. 次の 2 つのステップのうちの 1 つを選択します。
    1. 環境のリストで、以下の操作をします。
      1. AWS Proton コンソールで、[環境] を選択します。

      2. 環境のリストで、更新したい環境テンプレートの左にあるラジオボタンを選択します。

    2. コンソール環境の詳細ページで以下の操作をします。
      1. AWS Proton コンソールで、[環境] を選択します。

      2. 環境のリストで、更新したい環境の名前を選択します。

  2. 次の 4 つのステップのいずれかを選択して環境を更新します。
    1. 環境デプロイを要求しない編集を加えるには
      1. たとえば、説明を変更するには、次のように操作します。

        [Edit] (編集) を選択します。

      2. フォームに必要な値を入力して [Next (次へ)] を選択します。

      3. 編集内容を見直して [Update (更新)] を選択します。

    2. メタデータ入力のみを更新するには
      1. [Actions (アクション)] を選択してから [Update (更新)] を選択します。

      2. フォームに必要な値を入力して [Edit (編集)] を選択します。

      3. フォームに必要な値を入力し、[Review (確認)]ページが表示されるまで [Next (次へ)] を選択します。

      4. 更新内容を見直して [Update (更新)] を選択します。

    3. 環境テンプレートの新しいマイナーバージョンを更新するには
      1. [Actions (アクション)] を選択してから [Update minor (マイナー更新)] を選択します。

      2. フォームに必要な値を入力して [Next (次へ)] を選択します。

      3. フォームに必要な値を入力し、[Review (確認)] ページが表示されるまで [Next (次へ)] を選択します。

      4. 更新内容を見直して [Update (更新)] を選択します。

    4. 環境テンプレートの新しいメジャーバージョンを更新するには
      1. [Actions (アクション)] を選択してから [Update major (メジャー更新)] を選択します。

      2. フォームに必要な値を入力して [Next (次へ)] を選択します。

      3. フォームに必要な値を入力し、[Review (確認)] ページが表示されるまで [Next (次へ)] を選択します。

      4. 更新内容を見直して [Update (更新)] を選択します。

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"

進行中の環境デプロイをキャンセルする

deploymentStatusIN_PROGRESS であれば、環境更新デプロイをキャンセルできます。AWS Proton はデプロイをキャンセルしようとします。正常にキャンセルされる保証はありません

更新のデプロイをキャンセルすると、AWS Proton は、次の手順に示すようにデプロイをキャンセルしようとします。

AWS マネージドプロビジョニングでは、AWS Proton によって次のことが行われます。
  • デプロイの状態を CANCELLING に設定します。

  • 進行中のデプロイを停止し、IN_PROGRESS の際にデプロイによって作成された新しいリソースを削除します。

  • デプロイの状態を CANCELLED に設定します。

  • リソースの状態をデプロイが開始される前の状態に戻します。

セルフマネージドプロビジョニングでは、AWS Proton によって次のことが行われます。
  • リポジトリに変更をマージしないように、プルリクエストを閉じようとします。

  • プルリクエストが正常に閉じた場合、デプロイの状態を CANCELLED に設定します。

環境デプロイをキャンセルする手順については、『AWS Proton API リファレンス』の「CancelEnvironmentDeployment」を参照してください。

コンソールまたは CLI を使用して、進行中の環境をキャンセルできます。

AWS Management Console

以下に示す手順に従って、コンソールで環境更新デプロイをキャンセルします。

  1. AWS Proton コンソールのサービスナビゲーションペインで [Environments (環境)] を選択します。

  2. 環境のリストで、デプロイの更新をキャンセルしたい環境の名前を選択します。

  3. 更新のデプロイステータスが [In progress (進行中)] の場合、環境の詳細ページで [Action (アクション)] を選択してから [Cancel deployment (デプロイをキャンセル)] を選択します。

  4. キャンセルするかどうかの確認を求めるモーダルが表示されます。[Cancel deployment (デプロイをキャンセル)] を選択します。

  5. 更新のデプロイステータスが [Cancelling (キャンセル中)] に変わり、キャンセルが完了すると [Cancelled (キャンセル済み)] に変わります。

AWS CLI

AWS ProtonAWS CLI を使用して新しいマイナーバージョン 2 への IN_PROGRESS 環境更新デプロイをキャンセルします。

この例で使用するテンプレートには待機条件が含まれており、更新のデプロイが成功する前にキャンセルが開始されます。

次のコマンドを実行して更新をキャンセルします。

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