

サポート終了通知: 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)」を参照してください。

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

# AWS Proton テンプレート
<a name="ag-templates"></a>

テンプレートバンドルを AWS Proton テンプレートライブラリに追加するには、テンプレートのマイナーバージョンを作成して に登録します AWS Proton。テンプレートを作成する際に、Amazon S3 バケットの名前とあなたのテンプレートバンドルのパスを指定します。テンプレートをパブリッシュした後、プラットフォームチームのメンバーや開発者がそれらを選択できます。選択すると、 はテンプレート AWS Proton を使用してインフラストラクチャとアプリケーションを作成およびプロビジョニングします。

管理者は、 環境テンプレートを作成して登録できます AWS Proton。この環境テンプレートを使用して、複数の環境をデプロイできます。たとえば、「dev」、「staging」、「prod」の環境のデプロイに使用できます。「dev」環境には、プライベートサブネットを持つ VPC と、すべてのリソースへの制限付きアクセスポリシーが含まれる可能性があります。環境出力をサービスの入力として使用できます。

環境テンプレートを作成して登録し、異なる 2 種類の環境を作成できます。ユーザーと開発者の両方が、両方のタイプ AWS Proton にサービスをデプロイするために使用できます。
+  AWS Proton が環境インフラストラクチャをプロビジョニングして管理する*標準*環境を作成するために使用する*標準*環境テンプレートを登録して公開します。
+  AWS Proton が既存のプロビジョニング済みインフラストラクチャに接続する*カスタマーマネージド*環境を作成するために使用するカスタマーマネージド環境テンプレートを登録して公開します。 AWS Proton *は、既存のプロビジョニング済みインフラストラクチャを管理しません*。

サービステンプレートを作成して に登録 AWS Proton し、 環境にサービスをデプロイできます。サービスをデプロイする前に、 AWS Proton 環境を作成する必要があります。

次のリストは、 でテンプレートを作成および管理する方法を示しています AWS Proton。
+ (オプション) AWS Proton API コールと IAM サービスロールへの開発者アクセスを制御する IAM AWS Proton ロールを準備します。詳細については、「[IAM ロール](ag-environment-roles.md)」を参照してください。
+ テンプレートバンドルを構成します。詳細については、「[テンプレートバンドル](ag-template-authoring.md#ag-template-bundles)」を参照してください。
+ テンプレートバンドルが構成、圧縮され、Amazon S3 バケットに保存された AWS Proton 後、テンプレートを作成して に登録します。これはコンソールまたは AWS CLIを使用して実行できます。
+ テンプレートをテストして使用し、登録後に AWS Proton プロビジョニングされたリソースを作成および管理します AWS Proton。
+ テンプレートのライフサイクル全体を通して、メジャーバージョンとマイナーバージョンを作成および管理します。

テンプレートのバージョンは、手動で管理するか、またはテンプレート同期設定を使用して管理できます。
+  AWS Proton コンソールと を使用して AWS CLI 、新しいマイナーバージョンまたはメジャーバージョンを作成します。
+ 定義したリポジトリ内の[テンプレートバンドルへの変更を検出すると、 が新しいマイナーバージョンまたはメジャーバージョンを自動的に作成できるようにするテンプレート同期設定を作成します](create-template-sync.md)。 AWS Proton 

詳細については、「 [https://docs.aws.amazon.com/proton/latest/APIReference/Welcome.html](https://docs.aws.amazon.com/proton/latest/APIReference/Welcome.html)」を参照してください。

**Topics**
+ [バージョン付きテンプレート](ag-template-versions.md)
+ [テンプレートを登録してパブリッシュする](template-create.md)
+ [テンプレートデータを表示する](template-view.md)
+ [テンプレートを更新する](template-update.md)
+ [テンプレートを削除する](template-delete.md)
+ [テンプレートの同期設定](ag-template-sync-configs.md)
+ [サービス同期設定](ag-service-sync-configs.md)

# バージョン付きテンプレート
<a name="ag-template-versions"></a>

管理者またはプラットフォームチームのメンバーとして、インフラストラクチャリソースのプロビジョニングに使用されるバージョン対応テンプレートのライブラリを定義、作成、および管理します。テンプレートバージョンには、マイナーバージョンとメジャーバージョンの 2 種類があります。
+ *マイナーバージョン* — 下位互換性があるスキーマを含むテンプレートへの変更。これらの変更では、新しいテンプレートバージョンへの更新時に開発者が新しい情報を提供する必要がありません。

  マイナーバージョンの変更を試みると、 AWS Proton は、新しいバージョンのスキーマがテンプレートの以前のマイナーバージョンと下位互換性があるかどうかをベストエフォートで判断しようとします。新しいスキーマに下位互換性がない場合、 は新しいマイナーバージョンの登録に AWS Proton 失敗します。
**注記**  
互換性は、chema. AWS Proton does のみに基づいて決定されます。テンプレートバンドルのInfrastructure as Code (IaC) ファイルが以前のマイナーバージョンと下位互換性があるかどうかはチェックされません。例えば、新しい IaC ファイルが、以前のマイナーバージョンのテンプレートによってプロビジョニングされたインフラストラクチャで実行されているアプリケーションに重大な変更を引き起こすかどうかはチェック AWS Proton しません。
+ *メジャーバージョン* — 下位互換性がないおそれのある、テンプレートに加えられた変更。そのような変更には、通常、開発者からの新しい入力が必要です。また、多くの場合、テンプレートスキーマの変更も必要です。

  場合によっては、下位互換性のある変更を、あなたのチームの運用モデルに基づいたメジャーバージョンとして指定することも選択できます。

テンプレートバージョンリクエストがマイナーバージョンかメジャーバージョンか AWS Proton を決定する方法は、テンプレートの変更の追跡方法によって異なります。
+ 新しいテンプレートバージョンの作成を明示的にリクエストするとき、メジャーバージョンはメジャーバージョン番号を指定してリクエストし、マイナーバージョンはメジャーバージョン番号を指定せずにリクエストします。
+ [テンプレート同期](ag-template-sync-configs.md)を使用する (したがって、明示的なテンプレートバージョンリクエストを行わない) 場合、 は、既存の YAML ファイルで発生するテンプレート変更の新しいマイナーバージョンを作成 AWS Proton しようとします。新しいテンプレート変更の新しいディレクトリを作成すると (例えば、v1 から v2 への移行）、 はメジャーバージョン AWS Proton を作成します。
**注記**  
が変更に下位互換性がない AWS Proton と判断した場合、テンプレート同期に基づく新しいマイナーバージョン登録は失敗します。

テンプレートの新しいバージョンをパブリッシュした場合、そのメジャーバージョンとマイナーバージョンが最も高ければ、それが**推奨**バージョンになります。新しい AWS Proton リソースは新しい推奨バージョンを使用して作成され、管理者は新しいバージョンを使用し、古いバージョンを使用している既存の AWS Proton リソースを更新するように AWS Proton 求められます。

# テンプレートを登録してパブリッシュする
<a name="template-create"></a>

以下のセクションで説明するように AWS Proton、 で環境テンプレートとサービステンプレートを登録して公開できます。

コンソールまたは を使用して、テンプレートの新しいバージョンを作成できます AWS CLI。

または、 コンソールまたは AWS CLI を使用してテンプレートを作成し、[テンプレート同期を設定](ag-template-sync-configs.md)することもできます。この設定では、定義した登録済み git リポジトリにあるテンプレートバンドルから AWS Proton 同期できます。あなたのテンプレートバンドルのいずれかを変更するコミットがあなたのリポジトリにプッシュされるたびに、あなたのテンプレートの新しいマイナーバージョンまたはメジャーバージョンが (まだ存在しなければ) 作成されます。テンプレート同期設定の前提条件と要件の詳細については、「[テンプレートの同期設定](ag-template-sync-configs.md)」を参照してください。

## 環境テンプレートの登録とパブリッシュ
<a name="env-template-v1"></a>

次のタイプの環境テンプレートを登録してパブリッシュできます。
+ が環境インフラストラクチャのデプロイと管理 AWS Proton に使用する*標準*環境テンプレートを登録して公開します。
+ が管理する既存のプロビジョニング済みインフラストラクチャに接続 AWS Proton するために使用する*カスタマーマネージド*環境テンプレートを登録して公開します。 AWS Proton *は、既存のプロビジョニング済みインフラストラクチャを管理しません*。

**重要**  
管理者として、プロビジョニングおよびマネージドインフラストラクチャとすべての出力パラメータが、関連する*カスタマーマネージド*環境テンプレートと互換性があることを確認してください。 は、ユーザーに代わって変更を考慮 AWS Proton することはできません。これらの変更は表示されないためです AWS Proton。一貫性がない場合、結果はエラーになります。

コンソールまたは を使用して AWS CLI 、環境テンプレートを登録および公開できます。

------
#### [ AWS マネジメントコンソール ]

**コンソールで、新しい環境テンプレートを登録してパブリッシュします。**

1. [AWS Proton コンソール](https://console.aws.amazon.com//proton/)で [**Environment templates (環境テンプレート)**] を選択します。

1. [**Create Environment template**] (環境テンプレートの作成) を選択します。

1. [**Create environment template (環境テンプレートを作成する)**] ページの [**Template options (テンプレートオプション)**] セクションで利用可能な 2 つのテンプレートオプションのいずれかを選択します。
   + **Create a template for provisioning new environments** (新しい環境をプロビジョニング用のテンプレートを作成する)
   + **管理しようとするプロビジョニングされたインフラストラクチャを使用するテンプレートを作成します**。

1. [**Create a template for provisioning new environments (新しい環境のプロビジョニング用のテンプレートを作成する)**] を選択した場合、[**Template bundle source (テンプレートバンドルソース)**] セクションで利用可能な 3 つのテンプレートバンドルソースオプションのいずれかを選択します。テンプレートの同期に関する要件と前提条件については、「[テンプレートの同期設定](ag-template-sync-configs.md)」を参照してください。
   + **Use one of our sample template bundles** (サンプルテンプレートバンドルのいずれかを使用する)
   + **Use your own template bundle** (独自のテンプレートバンドルを使用する)
   + **[Sync templates from Git](ag-template-sync-configs.md)** (Git からテンプレートを同期する)

1. 

**テンプレートバンドルのパスを指定します。**

   1. [**Use one of our sample template bundles (サンプルテンプレートバンドルのいずれかを使用する)**] を選択した場合:

      [**Sample template bundle (サンプルテンプレートバンドル)**] セクションでサンプルテンプレートバンドルを選択します。

   1. [**Sync templates from Git (Git からテンプレートを同期する)**] を選択した場合、[**Source code (ソースコード)**] セクションで以下の操作をします。

      1. テンプレート同期設定のリポジトリを選択します。

      1. 同期するリポジトリブランチの名前を入力します。

      1. (オプション) ディレクトリ名を入力して、テンプレートバンドルの検索を制限します。

   1. それ以外の場合、[**S3 bundle location (S3 バンドルの場所)**] セクションでテンプレートバンドルのパスを指定します。

1. [**Template details (テンプレートの詳細)**] セクションで以下の操作をします。

   1. **テンプレート名**を入力します。

   1. (オプション) [**Template display name**] にテンプレート表示名を入力します。

   1. (オプション) [**Template description**] に環境テンプレートの説明を入力します。

1. (オプション) [**Encryption settings (暗号化設定)**] セクションの [**Customize encryption settings (advanced) (暗号化設定のカスタマイズ (アドバンスト))**] のチェックボックスをオンにして、あなた自身の暗号化キーを提供します。

1. (オプション) [**Tags (タグ)**] セクションで [**Add new tag (新しいタグを追加)**] を選択し、キーと値を入力してカスタマーマネージドタグを作成します。

1. [**Create Environment template (環境テンプレートの作成)**] を選択します。

   新しいページが開き、新しい環境テンプレートのステータスと詳細が表示されます。これらの詳細には、 AWS およびカスタマーマネージドタグのリストが含まれます。 は、 AWS Proton リソースの作成時に AWS マネージドタグ AWS Proton を自動的に生成します。詳細については、「[AWS Proton リソースとタグ付け](resources.md)」を参照してください。

1. 新しい環境テンプレートのステータスは [**Draft (ドラフト)**] から始まります。その表示やアクセスができるのは、あなたと `proton:CreateEnvironment` 権限がある他のユーザーです。次の手順に従って、テンプレートを自分以外のユーザーが使用できるようにします。

1. [**Template versions (テンプレートのバージョン)**] セクションで、先ほど作成したテンプレートのマイナーバージョン (1.0) の左側にあるラジオボタンを選択します。別の方法としては、情報アラートで [**Publish (パブリッシュ)**] を選択して次のステップをスキップします。

1. [**Template versions (テンプレートのバージョン)**] セクションで [**Publish (パブリッシュ)**] を選択します。

1. テンプレートのステータスが [**Published (パブリッシュ)**] に変わります。最新バージョンのテンプレートなので、これは [**Recommended (推奨)**] バージョンです。

1. ナビゲーションペインで [**Environment templates (環境テンプレート)**] を選択して環境テンプレートと詳細の一覧を表示します。

**コンソールを使用して、環境テンプレートの新しいメジャーバージョンとマイナーバージョンを登録します。**

詳細については、「[バージョン付きテンプレート](ag-template-versions.md)」を参照してください。

1. [AWS Proton コンソール](https://console.aws.amazon.com//proton/)で [**Environment Templates (環境テンプレート)**] を選択します。

1. 環境テンプレートのリストで、メジャーバージョンまたはマイナーバージョンを作成したい環境テンプレートの名前を選択します。

1. 環境テンプレートの詳細ビューの [**Template version (テンプレートのバージョン)**] セクションで [**Create new version (新しいバージョンの作成)**] を選択します。

1. [**Create a new environment template version (新しい環境テンプレートバージョンを作成する)**] ページの [**Template bundle source (テンプレートバンドルソース)**] セクションで利用可能な 2 つのテンプレートバンドルソースオプションのいずれかを選択します。
   + **Use one of our sample template bundles** (サンプルテンプレートバンドルのいずれかを使用する)
   + **Use your own template bundle** (独自のテンプレートバンドルを使用する)

1. 選択したテンプレートバンドルのパスを指定します。
   + [**Use one of our sample template bundles (サンプルテンプレートバンドルのいずれかを使用する)**] を選択したば場合、[**Sample template bundle (サンプルテンプレートバンドル)**] セクションでサンプルテンプレートバンドルを選択します。
   + [**Use your own template bundle (独自のテンプレートバンドルを使用する)**] を選択した場合、[**S3 bundle location (S3 バンドルの場所)**] セクションでテンプレートバンドルのパスを選択します。

1. [**Template details (テンプレートの詳細)**] セクションで以下の操作をします。

   1. (オプション) [**Template display name**] にテンプレート表示名を入力します。

   1. (オプション) [**Template description**] にサービステンプレートの説明を入力します。

1. [**Template details (テンプレートの詳細)**] セクションで、以下のオプションのいずれかを選択します。
   + マイナーバージョンを作成するには、[**Check to create a new major version (チェックして新しいメジャーバージョンを作成)**] チェックボックスをオフのままにしておきます。
   + メジャーバージョンを作成するには、[**Check to create a new major version (チェックして新しいメジャーバージョンを作成)**] チェックボックスをオンにします。

1. コンソールの手順を続けて、新しいマイナーバージョンまたはメジャーバージョンを作成し、[**Create new version (新しいバージョンの作成)**] を選択します。

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

**CLI を使用して、次の手順に示すように、新しい環境テンプレートを登録してパブリッシュします。**

1. リージョン、名前、表示名 (オプション)、および説明 (オプション) を指定して、*標準*または*カスタマーマネージド*環境テンプレートを作成します。

   1. *標準*環境テンプレートを作成します。

      次のコマンドを実行してください。

      ```
      $ aws proton create-environment-template \
          --name "simple-env" \
          --display-name "Fargate" \
          --description "VPC with public access"
      ```

      レスポンス:

      ```
      {
          "environmentTemplate": {
              "arn": "arn:aws:proton:region-id:123456789012:environment-template/simple-env",
              "createdAt": "2020-11-11T23:02:45.336000+00:00",
              "description": "VPC with public access",
              "displayName": "VPC",
              "lastModifiedAt": "2020-11-11T23:02:45.336000+00:00",
              "name": "simple-env"
          }
      }
      ```

   1. `provisioning` である `CUSTOMER_MANAGED` パラメータを追加することで*カスタマーマネージド*環境テンプレートを作成します。

      次のコマンドを実行してください。

      ```
      $ aws proton create-environment-template \
          --name "simple-env" \
          --display-name "Fargate" \
          --description "VPC with public access" \
          --provisioning "CUSTOMER_MANAGED"
      ```

      レスポンス:

      ```
      {
          "environmentTemplate": {
              "arn": "arn:aws:proton:region-id:123456789012:environment-template/simple-env",
              "createdAt": "2020-11-11T23:02:45.336000+00:00",
              "description": "VPC with public access",
              "displayName": "VPC",
              "lastModifiedAt": "2020-11-11T23:02:45.336000+00:00",
              "name": "simple-env",
              "provisioning": "CUSTOMER_MANAGED"
          }
      }
      ```

1. 

**環境テンプレートのメジャーバージョン 1 のマイナーバージョン 0 を作成します。**

   このステップと残りのステップは、*標準*環境テンプレートと*カスタマーマネージド*環境テンプレートで同じです。

   環境テンプレートバンドルを含むバケットのテンプレート名、メジャーバージョン、S3 バケット名とキーを含めます。

   次のコマンドを実行してください。

   ```
   $ aws proton create-environment-template-version \
       --template-name "simple-env" \
       --description "Version 1" \
       --source s3="{bucket=your_s3_bucket, key=your_s3_key}"
   ```

   レスポンス:

   ```
   {
       "environmentTemplateVersion": {
           "arn": "arn:aws:proton:region-id:123456789012:environment-template/simple-env:1.0",
           "createdAt": "2020-11-11T23:02:47.763000+00:00",
           "description": "Version 1",
           "lastModifiedAt": "2020-11-11T23:02:47.763000+00:00",
           "majorVersion": "1",
           "minorVersion": "0",
           "status": "REGISTRATION_IN_PROGRESS",
           "templateName": "simple-env"
       }
   }
   ```

1. get コマンドを使用して登録ステータスを確認します。

   次のコマンドを実行してください。

   ```
   $ aws proton get-environment-template-version \
       --template-name "simple-env" \
       --major-version "1" \
       --minor-version "0"
   ```

   レスポンス:

   ```
   {
       "environment": {
           "arn": "arn:aws:proton:region-id:123456789012:environment-template/simple-env:1.0",
           "createdAt": "2020-11-11T23:02:47.763000+00:00",
           "description": "Version 1",
           "lastModifiedAt": "2020-11-11T23:02:47.763000+00:00",
           "majorVersion": "1",
           "minorVersion": "0",
           "recommendedMinorVersion": "0",
           "schema": "schema:\n  format:\n    openapi: \"3.0.0\"\n  environment_input_type: \"MyEnvironmentInputType\"\n  types:\n    MyEnvironmentInputType:\n      type: object\n      description: \"Input properties for my environment\"\n      properties:\n        my_sample_input:\n          type: string\n          description: \"This is a sample input\"\n          default: \"hello world\"\n        my_other_sample_input:\n          type: string\n          description: \"Another sample input\"\n      required:\n        - my_other_sample_input\n",
           "status": "DRAFT",
           "statusMessage": "",
           "templateName": "simple-env"
       }
   }
   ```

1. テンプレート名とメジャーバージョンとマイナーバージョンを指定して、環境テンプレートのメジャーバージョン 1 のマイナーバージョン 0 をパブリッシュします。このバージョンは `Recommended` バージョンです。

   次のコマンドを実行してください。

   ```
   $ aws proton update-environment-template-version \
       --template-name "simple-env" \
       --major-version "1" \
       --minor-version "0" \
       --status "PUBLISHED"
   ```

   レスポンス:

   ```
   {
       "environmentTemplateVersion": {
           "arn": "arn:aws:proton:region-id:123456789012:environment-template/simple-env:1.0",
           "createdAt": "2020-11-11T23:02:47.763000+00:00",
           "description": "Version 1",
           "lastModifiedAt": "2020-11-11T23:02:54.610000+00:00",
           "majorVersion": "1",
           "minorVersion": "0",
           "recommendedMinorVersion": "0",
           "schema": "schema:\n  format:\n    openapi: \"3.0.0\"\n  environment_input_type: \"MyEnvironmentInputType\"\n  types:\n    MyEnvironmentInputType:\n      type: object\n      description: \"Input properties for my environment\"\n      properties:\n        my_sample_input:\n          type: string\n          description: \"This is a sample input\"\n          default: \"hello world\"\n        my_other_sample_input:\n          type: string\n          description: \"Another sample input\"\n      required:\n        - my_other_sample_input\n",
           "status": "PUBLISHED",
           "statusMessage": "",
           "templateName": "simple-env"
       }
   }
   ```

を使用して新しいテンプレートを作成したら AWS CLI、 AWS とカスタマーマネージドタグのリストを表示できます。 はマネージドタグ AWS Proton を自動的に生成 AWS します。また、 AWS CLIで、カスタマーマネージドタグの変更や作成もできます。詳細については、「[AWS Proton リソースとタグ付け](resources.md)」を参照してください。

次のコマンドを実行してください。

```
$ aws proton list-tags-for-resource \
    --resource-arn "arn:aws:proton:region-id:123456789012:environment-template/simple-env"
```

------

## サービステンプレートを登録してパブリッシュする
<a name="svc-template-v1"></a>

サービステンプレートバージョンを作成する際に、互換性のある環境テンプレートの一覧を指定します。そうすれば、開発者はサービステンプレートを選択するときにサービスをデプロイする環境を選択できます。

サービステンプレートからサービスを作成する前や、サービステンプレートをパブリッシュする前は、リストにある互換性のある環境テンプレートから環境がデプロイされていることを確認してください。

互換性のない環境テンプレートから構築された環境にデプロイされたサービスは、新しいメジャーバージョンに更新*できません*。

サービステンプレートバージョンの互換性のある環境テンプレートを追加または削除するには、新しいメジャーバージョンを作成します。

コンソールまたは を使用して AWS CLI 、サービステンプレートを登録して公開できます。

------
#### [ AWS マネジメントコンソール ]

**コンソールを使用して、新しいサービステンプレートを登録してパブリッシュします。**

1. [AWS Proton コンソール](https://console.aws.amazon.com//proton/)で [**Service templates (サービステンプレート)**] を選択します。

1. [**Create service template (サービステンプレートの作成)**] を選択します。

1. [**Create service template (環境サービスを作成する)**] ページの [**Template bundle source (テンプレートバンドルソース)**] セクションで利用可能なテンプレートオプションのいずれかを選択します。
   + **Use your own template bundle** (独自のテンプレートバンドルを使用する)
   + **Sync templates from Git** (Git からテンプレートを同期する)

1. 

**テンプレートバンドルのパスを指定します。**

   1. [**Sync templates from Git (Git からテンプレートを同期する)**] を選択した場合、[**Source code repository (ソースコードリポジトリ)**] セクションで以下の操作をします。

      1. テンプレート同期設定のリポジトリを選択します。

      1. 同期するリポジトリブランチの名前を入力します。

      1. (オプション) ディレクトリ名を入力して、テンプレートバンドルの検索を制限します。

   1. それ以外の場合、[**S3 bundle location (S3 バンドルの場所)**] セクションでテンプレートバンドルのパスを指定します。

1. [**Template details (テンプレートの詳細)**] セクションで以下の操作をします。

   1. **テンプレート名**を入力します。

   1. (オプション) [**Template display name**] にテンプレート表示名を入力します。

   1. (オプション) [**Template description**] にサービステンプレートの説明を入力します。

1. [**Compatible environment templates (互換性のある環境テンプレート)**] セクションで、リストから互換性のある環境テンプレートを選択します。

   

1. (オプション) [**Encryption settings (暗号化設定)**] セクションの [**Customize encryption settings (advanced) (暗号化設定のカスタマイズ (アドバンスト))]**] を選択し、あなた自身の暗号化キーを用意します。

1. (オプション）[**パイプライン**]セクション：

   あなたのサービステンプレートにサービスパイプライン定義を含めていない場合は、ページの下部にある [**Pipeline - optional (パイプライン - オプション)**] チェックボックスをオフにします。サービステンプレートの作成後にこれを変更することは*できません*。詳細については、「[テンプレートバンドル](ag-template-authoring.md#ag-template-bundles)」を参照してください。

1. (オプション)直接定義されたコンポーネントをサービスインスタンスにアタッチできるように、[**サポート対象のコンポーネントソース**] セクションの [**コンポーネントソース**] で、[**直接定義**] を選択します。

1. (オプション) [**Tags (タグ)**] セクションで [**Add new tag (新しいタグを追加)**] を選択し、キーと値を入力してカスタマーマネージドタグを作成します。

1. [**Create service a template (サービステンプレートの作成)**] を選択します。

   新しいページが開き、新しいサービステンプレートのステータスと詳細が表示されます。これらの詳細には、 AWS およびカスタマーマネージドタグのリストが含まれます。 は、 AWS Proton リソースの作成時に AWS マネージドタグ AWS Proton を自動的に生成します。詳細については、「[AWS Proton リソースとタグ付け](resources.md)」を参照してください。

1. 新しいサービステンプレートステータスのステータスは [**Draft (ドラフト)**] から始まります。表示やアクセスできるのは、自分と自分以外の `proton:CreateService` アクセス許可があるユーザーです。次の手順に従って、テンプレートを自分以外のユーザーが使用できるようにします。

1. [**Template versions (テンプレートのバージョン)**] セクションで、先ほど作成したテンプレートのマイナーバージョン (1.0) の左側にあるラジオボタンを選択します。別の方法としては、情報アラートで [**Publish (パブリッシュ)**] を選択して次のステップをスキップします。

1. [**Template versions (テンプレートのバージョン)**] セクションで [**Publish (パブリッシュ)**] を選択します。

1. テンプレートのステータスが [**Published (パブリッシュ)**] に変わります。最新バージョンのテンプレートなので、これは [**Recommended (推奨)**] バージョンです。

1. ナビゲーションペインで [**Service templates (サービステンプレート)**] を選択してサービステンプレートと詳細の一覧を表示します。

**コンソールを使用して、サービステンプレートの新しいメジャーバージョンとマイナーバージョンを登録します。**

詳細については、「[バージョン付きテンプレート](ag-template-versions.md)」を参照してください。

1. [AWS Proton コンソール](https://console.aws.amazon.com//proton/)で [**Service Templates (サービステンプレート)**] を選択します。

1. サービステンプレートのリストで、メジャーバージョンまたはマイナーバージョンを作成したいサービステンプレートの名前を選択します。

1. サービステンプレートの詳細ビューの [**Template version (テンプレートのバージョン)**] セクションで [**Create new version**] を選択します。

1. [**サービステンプレートバージョンの新規作成**] ページの [**バンドルソース**] セクションで、[**あなた自身のテンプレートバンドルを使用**] を選択します。

1. それ以外の場合、[**S3 bundle location (S3 バンドルの場所)**] セクションであなたのテンプレートバンドルまでのパスを選択します。

1. [**Template details (テンプレートの詳細)**] セクションで以下の操作をします。

   1. (オプション) [**Template display name**] にテンプレート表示名を入力します。

   1. (オプション) [**Template description**] にサービステンプレートの説明を入力します。

1. [**Template details (テンプレートの詳細)**] セクションで、以下のオプションのいずれかを選択します。
   + マイナーバージョンを作成するには、[**Check to create a new major version (チェックして新しいメジャーバージョンを作成)**] チェックボックスをオフのままにしておきます。
   + メジャーバージョンを作成するには、[**Check to create a new major version (チェックして新しいメジャーバージョンを作成)**] チェックボックスをオンにします。

1. コンソールの手順を続けて、新しいマイナーバージョンまたはメジャーバージョンを作成し、[**Create new version (新しいバージョンの作成)**] を選択します。

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

サービスパイプラインなしでサービスをデプロイするサービステンプレートを作成するには、パラメータと値 `--pipeline-provisioning "CUSTOMER_MANAGED"` を `create-service-template` コマンドに追加します。[テンプレートバンドル](ag-template-authoring.md#ag-template-bundles) 作成と [サービステンプレートバンドルのスキーマ要件](ag-schema.md#schema-req-svc) の説明に従って、テンプレートバンドルを設定します。

**注記**  
サービステンプレートの作成後に `pipelineProvisioning` を変更することはできません。

1. 

**CLI を使用すると、次の手順に示すように、サービスパイプラインの有無にかかわらず、新しいサービステンプレートを登録してパブリッシュできます。**

   1. 

**CLI を使用してサービスパイプラインでサービステンプレートを作成します。**

      名前、表示名 (オプション)、および説明 (オプション) を指定します。

      次のコマンドを実行してください。

      ```
      $ aws proton create-service-template \
          --name "fargate-service" \
          --display-name "Fargate" \
          --description "Fargate-based Service"
      ```

      レスポンス:

      ```
      {
          "serviceTemplate": {
              "arn": "arn:aws:proton:region-id:123456789012:service-template/fargate-service",
              "createdAt": "2020-11-11T23:02:55.551000+00:00",
              "description": "Fargate-based Service",
              "displayName": "Fargate",
              "lastModifiedAt": "2020-11-11T23:02:55.551000+00:00",
              "name": "fargate-service"
          }
      }
      ```

   1. 

**サービスパイプラインを使用せずにサービステンプレートを作成します。**

      `--pipeline-provisioning` を追加します。

      次のコマンドを実行します。

      ```
      $ aws proton create-service-template \
          --name "fargate-service" \
          --display-name "Fargate" \
          --description "Fargate-based Service" \
          --pipeline-provisioning "CUSTOMER_MANAGED"
      ```

      レスポンス:

      ```
      {
          "serviceTemplate": {
              "arn": "arn:aws:proton:region-id:123456789012:service-template/fargate-service",
              "createdAt": "2020-11-11T23:02:55.551000+00:00",
              "description": "Fargate-based Service",
              "displayName": "Fargate",
              "lastModifiedAt": "2020-11-11T23:02:55.551000+00:00",
              "name": "fargate-service",
              "pipelineProvisioning": "CUSTOMER_MANAGED"
          }
      }
      ```

1. 

**サービステンプレートのメジャーバージョン 1 のマイナーバージョン 0 を作成します。**

   サービステンプレートバンドルを含むバケットのテンプレート名、互換性のある環境テンプレート、メジャーバージョン、S3 バケット名とキーを含めます。

   次のコマンドを実行してください。

   ```
   $ aws proton create-service-template-version \
       --template-name "fargate-service" \
       --description "Version 1" \
       --source s3="{bucket=your_s3_bucket, key=your_s3_key}" \
       --compatible-environment-templates '[{"templateName":"simple-env","majorVersion":"1"}]'
   ```

   レスポンス:

   ```
   {
       "serviceTemplateMinorVersion": {
           "arn": "arn:aws:proton:region-id:123456789012:service-template/fargate-service:1.0",
           "compatibleEnvironmentTemplates": [
               {
                   "majorVersion": "1",
                   "templateName": "simple-env"
               }
           ],
           "createdAt": "2020-11-11T23:02:57.912000+00:00",
           "description": "Version 1",
           "lastModifiedAt": "2020-11-11T23:02:57.912000+00:00",
           "majorVersion": "1",
           "minorVersion": "0",
           "status": "REGISTRATION_IN_PROGRESS",
           "templateName": "fargate-service"
       }
   }
   ```

   

1. *get* コマンドを使用して登録ステータスを確認します。

   次のコマンドを実行します。

   ```
   $ aws proton get-service-template-version \
       --template-name "fargate-service" \
       --major-version "1" \
       --minor-version "0"
   ```

   レスポンス:

   ```
   {
       "serviceTemplateMinorVersion": {
           "arn": "arn:aws:proton:us-east-1:123456789012:service-template/fargate-service:1.0",
           "compatibleEnvironmentTemplates": [
               {
                   "majorVersion": "1",
                   "templateName": "simple-env"
               }
           ],
           "createdAt": "2020-11-11T23:02:57.912000+00:00",
           "description": "Version 1",
           "lastModifiedAt": "2020-11-11T23:02:57.912000+00:00",
           "majorVersion": "1",
           "minorVersion": "0",
           "schema": "schema:\n  format:\n    openapi: \"3.0.0\"\n  pipeline_input_type: \"MyPipelineInputType\"\n  service_input_type: \"MyServiceInstanceInputType\"\n\n  types:\n    MyPipelineInputType:\n      type: object\n      description: \"Pipeline input properties\"\n      required:\n        - my_sample_pipeline_required_input\n      properties:\n        my_sample_pipeline_optional_input:\n          type: string\n          description: \"This is a sample input\"\n          default: \"hello world\"\n        my_sample_pipeline_required_input:\n          type: string\n          description: \"Another sample input\"\n\n    MyServiceInstanceInputType:\n      type: object\n      description: \"Service instance input properties\"\n      required:\n        - my_sample_service_instance_required_input\n      properties:\n        my_sample_service_instance_optional_input:\n          type: string\n          description: \"This is a sample input\"\n          default: \"hello world\"\n        my_sample_service_instance_required_input:\n          type: string\n          description: \"Another sample input\"",
           "status": "DRAFT",
           "statusMessage": "",
           "templateName": "fargate-service"
       }
   }
   ```

1. update コマンドでステータスを `"PUBLISHED"` に変更して、サービステンプレートをパブリッシュします。

   次のコマンドを実行してください。

   ```
   $ aws proton update-service-template-version \
       --template-name "fargate-service" \
       --description "Version 1" \
       --major-version "1" \
       --minor-version "0" \
       --status "PUBLISHED"
   ```

   レスポンス:

   ```
   {
       "serviceTemplateVersion": {
           "arn": "arn:aws:proton:region-id:123456789012:service-template/fargate-service:1.0",
           "compatibleEnvironmentTemplates": [
               {
                   "majorVersion": "1",
                   "templateName": "simple-env"
               }
           ],
           "createdAt": "2020-11-11T23:02:57.912000+00:00",
           "description": "Version 1",
           "lastModifiedAt": "2020-11-11T23:02:57.912000+00:00",
           "majorVersion": "1",
           "minorVersion": "0",
           "recommendedMinorVersion": "0",
           "schema": "schema:\n  format:\n    openapi: \"3.0.0\"\n  pipeline_input_type: \"MyPipelineInputType\"\n  service_input_type: \"MyServiceInstanceInputType\"\n\n  types:\n    MyPipelineInputType:\n      type: object\n      description: \"Pipeline input properties\"\n      required:\n        - my_sample_pipeline_required_input\n      properties:\n        my_sample_pipeline_optional_input:\n          type: string\n          description: \"This is a sample input\"\n          default: \"hello pipeline\"\n        my_sample_pipeline_required_input:\n          type: string\n          description: \"Another sample input\"\n\n    MyServiceInstanceInputType:\n      type: object\n      description: \"Service instance input properties\"\n      required:\n        - my_sample_service_instance_required_input\n      properties:\n        my_sample_service_instance_optional_input:\n          type: string\n          description: \"This is a sample input\"\n          default: \"hello world\"\n        my_sample_service_instance_required_input:\n          type: string\n          description: \"Another sample input\"\n",
           "status": "PUBLISHED",
           "statusMessage": "",
           "templateName": "fargate-service"
       }
   }
   ```

1. get コマンドを使用してサービステンプレートの詳細データを取得することで、 AWS Proton がバージョン 1.0 を公開していることを確認します。

   次のコマンドを実行してください。

   ```
   $ aws proton get-service-template-version \
       --template-name "fargate-service" \
       --major-version "1" \
       --minor-version "0"
   ```

   レスポンス:

   ```
   {
       "serviceTemplateMinorVersion": {
           "arn": "arn:aws:proton:us-east-1:123456789012:service-template/fargate-service:1.0",
           "compatibleEnvironmentTemplates": [
               {
                   "majorVersion": "1",
                   "templateName": "simple-env"
               }
           ],
           "createdAt": "2020-11-11T23:02:57.912000+00:00",
           "description": "Version 1",
           "lastModifiedAt": "2020-11-11T23:03:04.767000+00:00",
           "majorVersion": "1",
           "minorVersion": "0",
           "schema": "schema:\n  format:\n    openapi: \"3.0.0\"\n  pipeline_input_type: \"MyPipelineInputType\"\n  service_input_type: \"MyServiceInstanceInputType\"\n\n  types:\n    MyPipelineInputType:\n      type: object\n      description: \"Pipeline input properties\"\n      required:\n        - my_sample_pipeline_required_input\n      properties:\n        my_sample_pipeline_optional_input:\n          type: string\n          description: \"This is a sample input\"\n          default: \"hello world\"\n        my_sample_pipeline_required_input:\n          type: string\n          description: \"Another sample input\"\n\n    MyServiceInstanceInputType:\n      type: object\n      description: \"Service instance input properties\"\n      required:\n        - my_sample_service_instance_required_input\n      properties:\n        my_sample_service_instance_optional_input:\n          type: string\n          description: \"This is a sample input\"\n          default: \"hello world\"\n        my_sample_service_instance_required_input:\n          type: string\n          description: \"Another sample input\"",
           "status": "PUBLISHED",
           "statusMessage": "",
           "templateName": "fargate-service"
       }
   }
   ```

------

# テンプレートデータを表示する
<a name="template-view"></a>

[AWS Proton コンソール](https://console.aws.amazon.com//proton/)と AWS CLIで、テンプレートと詳細を一覧表示し、詳細データを含む個々のテンプレートを表示できます。

*カスタマーマネージド*環境テンプレートデータには、`provisioned` 値がである `CUSTOMER_MANAGED` パラメータが含まれます。

サービステンプレートにサービスパイプラインが含まれて*いない*場合、サービステンプレートデータに値が `pipelineProvisioning` である `CUSTOMER_MANAGED` パラメータが含まれます。

詳細については、「[テンプレートを登録してパブリッシュする](template-create.md)」を参照してください。

コンソールまたは を使用して AWS CLI 、テンプレートデータを一覧表示および表示できます。

------
#### [ AWS マネジメントコンソール ]

**コンソールを使用してテンプレートを表示および一覧表示します。**

1. テンプレートの一覧を表示するには、[**(Environment or Service) templates ((環境またはサービス\$1 テンプレート)**] を選択します。

1. 詳細データを表示するには、テンプレートの名前を選択します。

   テンプレートの詳細データ、テンプレートのメジャーバージョンとマイナーバージョンのリスト、テンプレートバージョンとテンプレートタグを使用してデプロイされた AWS Proton リソースのリストを表示します。

   推奨されるメジャーバージョンとマイナーバージョンには [**Recommended (推奨)**] のラベルが付きます。

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

**を使用してテンプレート AWS CLI を一覧表示および表示します。**

次のコマンドを実行してください。

```
$ aws proton get-environment-template-version \
    --template-name "simple-env" \
    --major-version "1" \
    --minor-version "0"
```

レスポンス:

```
{
    "environmentTemplateVersion": {
        "arn": "arn:aws:proton:region-id:123456789012:environment-template/simple-env:1.0",
        "createdAt": "2020-11-10T18:35:08.293000+00:00",
        "description": "Version 1",
        "lastModifiedAt": "2020-11-10T18:35:11.162000+00:00",
        "majorVersion": "1",
        "minorVersion": "0",
        "recommendedMinorVersion": "0",
        "schema": "schema:\n  format:\n    openapi: \"3.0.0\"\n  environment_input_type: \"MyEnvironmentInputType\"\n  types:\n    MyEnvironmentInputType:\n      type: object\n      description: \"Input properties for my environment\"\n      properties:\n        my_sample_input:\n          type: string\n          description: \"This is a sample input\"\n          default: \"hello world\"\n        my_other_sample_input:\n          type: string\n          description: \"Another sample input\"\n      required:\n        - my_other_sample_input\n",
        "status": "DRAFT",
        "statusMessage": "",
        "templateName": "simple-env"
    }
}
```

次のコマンドを実行してください。

```
$ aws proton list-environment-templates
```

レスポンス:

```
{
    "templates": [
        {
            "arn": "arn:aws:proton:region-id:123456789012:environment-template/simple-env-3",
            "createdAt": "2020-11-10T18:35:05.763000+00:00",
            "description": "VPC with Public Access",
            "displayName": "VPC",
            "lastModifiedAt": "2020-11-10T18:35:05.763000+00:00",
            "name": "simple-env-3",
            "recommendedVersion": "1.0"            
        },
        {
            "arn": "arn:aws:proton:region-id:123456789012:environment-template/simple-env-1",
            "createdAt": "2020-11-10T00:14:06.881000+00:00",
            "description": "Some SSM Parameters",
            "displayName": "simple-env-1",
            "lastModifiedAt": "2020-11-10T00:14:06.881000+00:00",
            "name": "simple-env-1",
            "recommendedVersion": "1.0"           
        }
    ]
}
```

サービステンプレートのマイナーバージョンを表示します。

次のコマンドを実行してください。

```
$ aws proton get-service-template-version \
    --template-name "fargate-service" \
    --major-version "1" \
    --minor-version "0"
```

レスポンス:

```
{
    "serviceTemplateMinorVersion": {
        "arn": "arn:aws:proton:us-east-1:123456789012:service-template/fargate-service:1.0",
        "compatibleEnvironmentTemplates": [
            {
                "majorVersion": "1",
                "templateName": "simple-env"
            }
        ],
        "createdAt": "2020-11-11T23:02:57.912000+00:00",
        "description": "Version 1",
        "lastModifiedAt": "2020-11-11T23:02:57.912000+00:00",
        "majorVersion": "1",
        "minorVersion": "0",
        "schema": "schema:\n  format:\n    openapi: \"3.0.0\"\n  pipeline_input_type: \"MyPipelineInputType\"\n  service_input_type: \"MyServiceInstanceInputType\"\n\n  types:\n    MyPipelineInputType:\n      type: object\n      description: \"Pipeline input properties\"\n      required:\n        - my_sample_pipeline_required_input\n      properties:\n        my_sample_pipeline_optional_input:\n          type: string\n          description: \"This is a sample input\"\n          default: \"hello world\"\n        my_sample_pipeline_required_input:\n          type: string\n          description: \"Another sample input\"\n\n    MyServiceInstanceInputType:\n      type: object\n      description: \"Service instance input properties\"\n      required:\n        - my_sample_service_instance_required_input\n      properties:\n        my_sample_service_instance_optional_input:\n          type: string\n          description: \"This is a sample input\"\n          default: \"hello world\"\n        my_sample_service_instance_required_input:\n          type: string\n          description: \"Another sample input\"",
        "status": "DRAFT",
        "statusMessage": "",
        "templateName": "fargate-service"
    }
}
```

次に示すコマンドとレスポンスの例では、サービスパイプラインなしでサービスを表示します。

次のコマンドを実行してください。

```
$ aws proton get-service-template \
    --name "simple-svc-template-cli"
```

レスポンス:

```
{
    "serviceTemplate": {
        "arn": "arn:aws:proton:region-id:123456789012:service-template/simple-svc-template-cli",
        "createdAt": "2021-02-18T15:38:57.949000+00:00",
        "displayName": "simple-svc-template-cli",
        "lastModifiedAt": "2021-02-18T15:38:57.949000+00:00",
        "status": "DRAFT",
        "name": "simple-svc-template-cli",
        "pipelineProvisioning": "CUSTOMER_MANAGED"
    }
}
```

------

# テンプレートを更新する
<a name="template-update"></a>

次の一覧の説明に従って、テンプレートを更新できます。
+ コンソールまたは AWS CLIの使用時にテンプレートの `description` または `display name` を編集します。テンプレートの `name` を編集することは*できません*。
+ コンソールまたは AWS CLIを使用するときに、テンプレートマイナーバージョンのステータスを更新します。ステータスの変更は `DRAFT` から `PUBLISHED` のみ可能です。
+  AWS CLIの使用時に、テンプレートのマイナーバージョンまたはメジャーバージョンの表示名と説明を編集します。

------
#### [ AWS マネジメントコンソール ]

以下で説明する手順に従って、コンソールでテンプレートの説明と表示名を編集します。

**テンプレートのリストで以下の操作をします。**

1. [AWS Proton コンソール](https://console.aws.amazon.com//proton/)で [**(Environment or Service) Templates ((環境またはサービス) テンプレート)**] を選択します。

1. テンプレートのリストで、説明または表示名を更新するテンプレートの左にあるラジオボタンを選択します。

1. [**Actions (アクション)**] を選択してから [**Edit (編集)**] を選択します。

1. [**Edit (environment or service) template ((環境またはサービス) テンプレートの編集)**] ページの [**Template details (テンプレートの詳細)**] セクションで、フォームに編集内容を入力して [**Save changes (変更の保存)**] を選択します。

コンソールを使用してテンプレートのマイナーバージョンのステータスを変更し、次の説明に従ってテンプレートをパブリッシュします。ステータスの変更は `DRAFT` から `PUBLISHED` のみ可能です。

**テンプレート (環境またはサービステンプレート) の詳細ページ。**

1. [AWS Proton コンソール](https://console.aws.amazon.com//proton/)で[**(Environment or Service) Templates ((環境またはサービス) テンプレート)**] を選択します。

1. テンプレートのリストで、マイナーバージョンのステータスを [**Draft (ドラフト)**] から [**Published (パブリッシュ)**] に更新したいテンプレートの名前を選択します。

1. テンプレート (環境またはサービステンプレート) の詳細ページにある [**Template versions (テンプレートのバージョン)**] セクションで、パブリッシュしたいマイナーバージョンの左にあるラジオボタンを選択します。

1. [**Template versions (テンプレートのバージョン)**] セクションで [**Publish (パブリッシュ)**] を選択します。ステータスが [**Draft (ドラフト)**] から [**Published (パブリッシュ)**] に代わります。

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

次のコマンドとレスポンスの例は、環境テンプレートの説明を編集する方法を示しています。

以下のコマンドを実行してください。

```
$ aws proton update-environment-template \
    --name "simple-env" \
    --description "A single VPC with public access"
```

レスポンス:

```
{
    "environmentTemplate": {
        "arn": "arn:aws:proton:region-id:123456789012:environment-template/simple-env",
        "createdAt": "2020-11-28T22:02:10.651000+00:00",
        "description": "A single VPC with public access",
        "displayName": "simple-env",
        "lastModifiedAt": "2020-11-29T16:11:18.956000+00:00",
        "majorVersion": "1",
        "minorVersion": "0",
        "recommendedMinorVersion": "0",
        "schema": "schema:\n  format:\n    openapi: \"3.0.0\"\n  environment_input_type: \"MyEnvironmentInputType\"\n  types:\n    MyEnvironmentInputType:\n      type: object\n      description: \"Input properties for my environment\"\n      properties:\n        my_sample_input:\n          type: string\n          description: \"This is a sample input\"\n          default: \"hello world\"\n        my_other_sample_input:\n          type: string\n          description: \"Another sample input\"\n      required:\n        - my_other_sample_input\n",
        "status": "PUBLISHED",
        "statusMessage": "",
        "templateName": "simple-env"
    }
}
```

を使用してサービステンプレート AWS CLI を更新することもできます。サービステンプレートのマイナーバージョンのステータスを更新する例については、ステップ 5 の「[サービステンプレートを登録してパブリッシュする](template-create.md#svc-template-v1)」を参照してください。

------

# テンプレートを削除する
<a name="template-delete"></a>

テンプレートはコンソールと AWS CLIを使用して削除できます。

そのバージョンにデプロイされた環境がない場合は、環境テンプレートのマイナーバージョンを削除できます。

そのバージョンにデプロイされたサービスインスタンスまたはパイプラインがない場合は、サービステンプレートのマイナーバージョンを削除できます。パイプラインは、サービスインスタンスとは異なるテンプレートバージョンにデプロイできます。たとえば、サービスインスタンスが 1.0 からバージョン 1.1 に更新され、パイプラインがバージョン 1.0 にデプロイされている場合、サービステンプレート 1.0 を削除することはできません。

------
#### [ AWS マネジメントコンソール ]

コンソールを使用して、テンプレート全体またはテンプレートの個々のマイナーバージョンとメジャーバージョンを削除できます。

コンソールを使用して、以下のようにテンプレートを削除します。

**注記**  
テンプレート全体を削除すると、テンプレートのメジャーバージョンとマイナーバージョンも削除されます。

**テンプレート (環境またはサービステンプレート) のリスト。**

1. [AWS Proton コンソール](https://console.aws.amazon.com//proton/)で [**(Environment or Service) Templates ((環境またはサービス) テンプレート)**] を選択します。

1. テンプレートのリストで、削除したいテンプレートの左にあるラジオボタンを選択します。

   テンプレート全体を削除できるのは、そのバージョンにデプロイされた AWS Proton リソースがない場合のみです。

1. [**Actions (アクション)**] を選択してから [**Delete (削除)**] を選択してテンプレート全体を削除します。

1. モーダルから Delete アクションの確認を求めるプロンプトが表示されます。

1. 手順に従って操作し、[**Yes, delete (はい、削除します)**] を選択します。

**テンプレート (環境またはサービステンプレート) の詳細ページ。**

1. [AWS Proton コンソール](https://console.aws.amazon.com//proton/)で [**(Environment or Service) Templates ((環境またはサービス) テンプレート)**] を選択します。

1. テンプレートのリストで、テンプレートの個々のメジャーバージョンまたはマイナーバージョンの全体を削除するか、または削除したいテンプレートの名前を選択します。

1. 

**テンプレート全体を削除するには、以下のように操作します。**

   テンプレート全体を削除できるのは、そのバージョンにデプロイされた AWS Proton リソースがない場合のみです。

   1. ページの右上にある [**Deleet (削除)**] を選択します。

   1. モーダルから Delete アクションの確認を求めるプロンプトが表示されます。

   1. 指示に従って操作し、[**Yes, delete (はい、削除します)**] を選択します。

1. 

**テンプレートのメジャーバージョンまたはマイナーバージョンを削除するには**

   テンプレートのマイナーバージョンは、そのバージョンにデプロイされた AWS Proton リソースがない場合にのみ削除できます。

   1. [**Template versions (テンプレートのバージョン)**] で、削除したいバージョンの左にあるラジオボタンを選択します。

   1. [**Template versions (テンプレートのバージョン)**] セクションで [**Delete (削除)**] を選択します。

   1. モーダルから Delete アクションの確認を求めるプロンプトが表示されます。

   1. 指示に従って操作し、[**Yes, delete (はい、削除します)**] を選択します。

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

AWS CLI テンプレート削除オペレーションには、テンプレートの他のバージョンの削除**は含まれません。を使用する場合は AWS CLI、次の条件でテンプレートを削除します。
+ テンプレートのマイナーバージョンまたはメジャーバージョンが存在しない場合、テンプレート全体を削除します。
+ 残っている最後のマイナーバージョンを削除するときにメジャーバージョンを削除します。
+ そのバージョンにデプロイされた AWS Proton リソースがない場合は、テンプレートのマイナーバージョンを削除します。
+ テンプレートの他のマイナーバージョンが存在しず、そのバージョンにデプロイされた AWS Proton リソースがない場合は、テンプレートの推奨マイナーバージョンを削除します。

**次のコマンドとレスポンスの例は、 AWS CLI を使用してテンプレートを削除する方法を示しています。**

次のコマンドを実行してください。

```
$ aws proton delete-environment-template-version \
    --template-name "simple-env" \
    --major-version "1" \
    --minor-version "0"
```

レスポンス:

```
{
    "environmentTemplateVersion": {
        "arn": "arn:aws:proton:region-id:123456789012:environment-template/simple-env:1.0",
        "createdAt": "2020-11-11T23:02:47.763000+00:00",
        "description": "Version 1",
        "lastModifiedAt": "2020-11-11T23:02:54.610000+00:00",
        "majorVersion": "1",
        "minorVersion": "0",
        "status": "PUBLISHED",
        "statusMessage": "",
        "templateName": "simple-env"
    }
}
```

次のコマンドを実行してください。

```
$ aws proton delete-environment-template \
    --name "simple-env"
```

レスポンス:

```
{
    "environmentTemplate": {
        "arn": "arn:aws:proton:region-id:123456789012:environment-template/simple-env",
        "createdAt": "2020-11-11T23:02:45.336000+00:00",
        "description": "VPC with Public Access",
        "displayName": "VPC",
        "lastModifiedAt": "2020-11-12T00:23:22.339000+00:00",
        "name": "simple-env",
        "recommendedVersion": "1.0"
    }
}
```

次のコマンドを実行してください。

```
$ aws proton delete-service-template-version \
    --template-name "fargate-service" \
    --major-version "1" \
    --minor-version "0"
```

レスポンス:

```
{
    "serviceTemplateVersion": {
        "arn": "arn:aws:proton:region-id:123456789012:service-template/fargate-service:1.0",
        "compatibleEnvironmentTemplates": [{"majorVersion": "1", "templateName": "simple-env"}],
        "createdAt": "2020-11-28T22:07:05.798000+00:00",
        "lastModifiedAt": "2020-11-28T22:19:05.368000+00:00",
        "majorVersion": "1",
        "minorVersion": "0",
        "status": "PUBLISHED",
        "statusMessage": "",
        "templateName": "fargate-service"
    }
}
```

------

# テンプレートの同期設定
<a name="ag-template-sync-configs"></a>

定義した登録済み git リポジトリにあるテンプレートバンドルからの AWS Proton 同期を許可するようにテンプレートを設定する方法について説明します。あなたのリポジトリにコミットがプッシュされると、 AWS Proton は、あなたのリポジトリテンプレートバンドルに変更があるかどうかを調べます。テンプレートバンドルの変更を検出すると、そのテンプレートの新しいマイナーバージョンまたはメジャーバージョンがまだ存在しない場合、そのテンプレートが作成されます。 AWS Proton は現在、GitHub、GitHub Enterprise、BitBucket をサポートしています。

## 同期されたテンプレートバンドルにコミットをプッシュする
<a name="ag-commits"></a>

あなたのテンプレートのいずれかが追跡中のブランチにコミットをプッシュすると、 AWS Proton はあなたのリポジトリをクローンし、どのテンプレートで同期が必要とされているかを判断します。あなたのディレクトリ内のファイルをスキャンして、`{template-name}/{major-version}/` の規則に一致するディレクトリを検索します。

は、リポジトリとブランチに関連付けられているテンプレートとメジャーバージョン AWS Proton を決定すると、それらのすべてのテンプレートを並行して同期しようとします。

特定のテンプレートへの各同期中に、 は AWS Proton 最初にテンプレートディレクトリの内容が最後に成功した同期以降に変更されたかどうかを確認します。コンテンツが変更されなかった場合、重複バンドルの登録が AWS Proton スキップされます。そうすれば、テンプレートバンドルのコンテンツが変更された場合に新しいテンプレートマイナーバージョンが作成されます。テンプレートバンドルの内容が変更された場合、バンドルは に登録されます AWS Proton。

テンプレートバンドルが登録されると、 は登録が完了するまで登録ステータスを AWS Proton モニタリングします。

特定のテンプレートのマイナーバージョンとメジャーバージョンに対して 1 つずつしか同期できません。同期の進行中にプッシュされた可能性のあるコミットはすべてバッチ処理されます。バッチされたコミットは、前回の同期試行の完了後に同期されます。

## サービステンプレートを同期する
<a name="syncing-service-templates"></a>

AWS Proton は、git リポジトリから環境テンプレートとサービステンプレートの両方を同期できます。あなたのサービステンプレートを同期するには、あなたのテンプレートバンドルの各メジャーバージョンディレクトリに `.template-registration.yaml` という名前のファイルを追加します。このファイルには、コミット後にサービステンプレートバージョンを作成するときに が AWS Proton 必要とする追加の詳細が含まれています。*互換性のある環境*と*サポートされているコンポーネントソース*です。

このファイルのフルパスは `service-template-name/major-version/.template-registration.yaml` です。詳細については、「[サービステンプレートを同期する](create-template-sync.md#create-template-sync-service-templates)」を参照してください。

## テンプレート同期の設定に関する考慮事項
<a name="sync-considerations"></a>

テンプレート同期設定の使用については、次の考慮事項を確認してください。
+ リポジトリは 250 MB 以下にする必要があります。
+ テンプレート同期を設定するには、まずリポジトリを AWS Protonにリンクします。詳細については、「[あなたのリポジトリのリンクを作成して登録する](ag-create-repo.md)」を参照してください。
+ 同期されたテンプレートから新しいテンプレートバージョンが作成されると、`DRAFT` 状態になります。
+ 次のいずれかに該当する場合、テンプレートの新しいマイナーバージョンが作成されます。
  + テンプレートバンドルの内容は、最後に同期されたテンプレートマイナーバージョンのものとは異なります。
  + 前回同期したテンプレートのマイナーバージョンが削除されました。
+ 同期を一時停止することはできません。
+ 新しいマイナーバージョンとメジャーバージョンの両方が自動的に同期されます。
+ テンプレート同期設定では、新しい最上位レベルテンプレートを作成することはできません。
+ テンプレート同期設定を使用して、複数のリポジトリから 1 つのテンプレートに同期することはできません。
+ ブランチの代わりにタグを使用することはできません。
+ [サービステンプレートを作成](template-create.md#svc-template-v1)する際には、互換性のある環境テンプレートを指定します。
+ 環境テンプレートを作成し、それを同じコミット内であなたのサービステンプレートの互換環境として追加できます。
+ 単一のテンプレートのメジャーバージョンへの同期は 1 つずつ実行されます。同期中に新しいコミットが検出されると、それらはアクティブ同期の終わりでバッチ処理され適用されます。異なるテンプレートのメジャーバージョンへの同期は並行して進行します。
+ テンプレートの同期元のブランチを変更すると、まず古いブランチからの継続的な同期が完了します。次いで、新しいブランチから同期が始まります。
+ テンプレートの同期元のリポジトリを変更すると、古いリポジトリからの継続的な同期が失敗したり、完了するまで実行される可能性があります。同期のどの段階にいるかによって異なります。

詳細については、「 [https://docs.aws.amazon.com/proton/latest/APIReference/Welcome.html](https://docs.aws.amazon.com/proton/latest/APIReference/Welcome.html)」を参照してください。

**Topics**
+ [同期されたテンプレートバンドルにコミットをプッシュする](#ag-commits)
+ [サービステンプレートを同期する](#syncing-service-templates)
+ [テンプレート同期の設定に関する考慮事項](#sync-considerations)
+ [テンプレート同期設定を作成する](create-template-sync.md)
+ [テンプレート同期設定の詳細を表示する](view-template-sync.md)
+ [テンプレート同期設定を編集する](update-template-sync.md)
+ [テンプレート同期設定を削除する](delete-template-sync.md)

# テンプレート同期設定を作成する
<a name="create-template-sync"></a>

を使用してテンプレート同期設定を作成する方法について説明します AWS Proton。

**テンプレート同期設定の前提条件を作成します。**
+ [リポジトリ](ag-create-repo.md)を AWS Protonにリンクしました。
+ [テンプレートバンドル](ag-template-authoring.md#ag-template-bundles)がリポジトリにあります。

**リポジトリリンクは以下で構成されます。**
+ リポジトリにアクセスして通知をサブスクライブするアクセス AWS Proton 許可を付与する CodeConnections 接続。
+ [サービスリンクロール](using-service-linked-roles.md) あなたのリポジトリをリンクすると、サービスリンクロールが作成されます。

最初のテンプレート同期設定を作成する前に、次のディレクトリレイアウトに示すように、テンプレートバンドルをリポジトリにプッシュします。

```
 /templates/                                                 # subdirectory (optional)
 /templates/my-env-template/                                 # template name
 /templates/my-env-template/v1/                              # template version
 /templates/my-env-template/v1/infrastructure/               # template bundle
 /templates/my-env-template/v1/schema/
```

最初のテンプレート同期設定を作成した後、新しいバージョンの下 (たとえば、`/my-env-template/v2/` の下) に更新されたテンプレートバンドルを追加するコミットをプッシュすると、新しいテンプレートバージョンが自動的に作成されます。

```
 /templates/                                                 # subdirectory (optional)
 /templates/my-env-template/                                 # template name
 /templates/my-env-template/v1/                              # template version
 /templates/my-env-template/v1/infrastructure/               # template bundle
 /templates/my-env-template/v1/schema/
 /templates/my-env-template/v2/
 /templates/my-env-template/v2/infrastructure/
 /templates/my-env-template/v2/schema/
```

1 つ以上の同期設定済みテンプレートの新しいテンプレートバンドルバージョンを 1 つのコミットに含めることができます。 は、コミットに含まれていた新しいテンプレートバンドルバージョンごとに新しいテンプレートバージョン AWS Proton を作成します。

テンプレート同期設定を作成した後も、S3 バケットからテンプレートバンドルをアップロード AWS CLI することで、コンソールまたは でテンプレートの新しいバージョンを手動で作成できます。テンプレートの同期は、リポジトリから への 1 つの方向でのみ機能します AWS Proton。手動で作成したテンプレートのバージョンは同期*されません*。

テンプレート同期設定をセットアップすると、 はリポジトリへの変更を AWS Proton 待ちます。変更がプッシュされるたびに、テンプレートと同じ名前のディレクトリが検索されます。次に、そのディレクトリ内でメジャーバージョンのように見えるディレクトリを検索します。 は、対応するテンプレートメジャーバージョンにテンプレートバンドル AWS Proton を登録します。新しいバージョンは常に `DRAFT` 状態です。[新しいバージョンは、 コンソールまたは を使用して公開](template-create.md)できます AWS CLI。

たとえば、`my-env-template` というテンプレートがあってブランチ `main` の `my-repo/templates` から同期するように設定されているとすると、以下のようなレイアウトになります。

```
 /code
 /code/service.go
 README.md
 /templates/
 /templates/my-env-template/
 /templates/my-env-template/v1/
 /templates/my-env-template/v1/infrastructure/
 /templates/my-env-template/v1/schema/
 /templates/my-env-template/v2/
 /templates/my-env-template/v2/infrastructure/
 /templates/my-env-template/v2/schema/
```

AWS Proton は の内容を `/templates/my-env-template/v1/` に`my-env-template:1`、 の内容を `/templates/my-env-template/v2/`に同期します`my-env-template:2`。これらのメジャーバージョンは、存在しない場合、作成されます。

AWS Proton は、テンプレート名に一致する最初のディレクトリを見つけました。テンプレート同期設定を作成または編集`subdirectoryPath`するときに を指定することで、ディレクトリ AWS Proton 検索を制限できます。たとえば、`subdirectoryPath` の `/production-templates/` を指定できます。

テンプレート同期設定は、コンソールまたは CLI を使用して作成できます。

------
#### [ AWS マネジメントコンソール ]

**テンプレートを使用して、テンプレートとテンプレート同期設定を作成します。**

1. [AWS Proton コンソール](https://console.aws.amazon.com//proton/)で [**Environment templates (環境テンプレート)**] を選択します。

1. [**Create Environment template**] (環境テンプレートの作成) を選択します。

1. [**Create environment template (環境テンプレートを作成する)**] ページの [**Template options (テンプレートオプション)**] セクションで [**Create a template for provisioning new environments (新しい環境のプロビジョニング用のテンプレートを作成する)**] を選択します。

1. [**Template bundle source (テンプレートバンドルソース)**] セクションで [**Sync templates from Git (Git からテンプレートを同期する)**] を選択します。

1. [**Source code repository (ソースコードレポジトリ)**] セクションで以下の操作をします。

   1. 「**Repository**」では、あなたのテンプレートバンドルがあるリンク先のリポジトリを選択します。

   1. [**ブランチ**] で、同期するリポジトリブランチを選択します。

   1. (オプション）**テンプレートバンドルディレクトリ**には、あなたのテンプレートバンドルの検索を絞り込むためのディレクトリ名を入力します。

1. [**Template details (テンプレートの詳細)**] セクションで以下の操作をします。

   1. **テンプレート名**を入力します。

   1. (オプション) [**Template display name**] にテンプレート表示名を入力します。

   1. (オプション) [**Template description**] に環境テンプレートの説明を入力します。

1. (オプション) [**Encryption settings (暗号化設定)**] セクションの [**Customize encryption settings (advanced) (暗号化設定のカスタマイズ (アドバンスト))**] のチェックボックスをオンにします。

1. (オプション) [**Tags (タグ)**] セクションで [**Add new tag (新しいタグを追加)**] を選択し、キーと値を入力してカスタマーマネージドタグを作成します。

1. [**Create Environment template (環境テンプレートの作成)**] を選択します。

   新しいページが開き、新しい環境テンプレートのステータスと詳細が表示されます。これらの詳細には、 AWS マネージドタグとカスタマーマネージドタグのリストが含まれます。 は、 AWS Proton リソースの作成時に AWS マネージドタグ AWS Proton を自動的に生成します。詳細については、「[AWS Proton リソースとタグ付け](resources.md)」を参照してください。

1. テンプレートの詳細ページで [**Sync (同期)**] タブを使用してテンプレート同期設定の詳細データを表示します。

1. [**Template versions (テンプレートのバージョン)**] タブを選択して、テンプレートバージョンとステータスの詳細を表示します。

1. 新しい環境テンプレートのステータスは [**Draft (ドラフト)**] から始まります。その表示やアクセスができるのは、あなたと `proton:CreateEnvironment` 権限がある他のユーザーです。次の手順に従って、テンプレートを自分以外のユーザーが使用できるようにします。

1. [**Template versions (テンプレートのバージョン)**] セクションで、先ほど作成したテンプレートのマイナーバージョン (1.0) の左側にあるラジオボタンを選択します。別の方法としては、情報アラートで [**Publish (発行)**] を選択して次のステップをスキップします。

1. [**Template versions (テンプレートのバージョン)**] セクションで [**Publish (パブリッシュ)**] を選択します。

1. テンプレートのステータスが [**Published (パブリッシュ済み)**] に変わります。これはテンプレートの最新かつ**推奨**バージョンです。

1. ナビゲーションペインで [**Environment templates (環境テンプレート)**] を選択して環境テンプレートと詳細の一覧を表示します。

サービステンプレートとテンプレート同期設定を作成する手順も同様です。

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

**AWS CLIを使用して、テンプレートとテンプレート同期設定を作成します。**

1. 

**テンプレートを作成する この例では、環境テンプレートが作成されます。**

   以下のコマンドを実行してください。

   ```
   $ aws proton create-environment-template \
       --name "env-template"
   ```

   レスポンスは次のとおりです。

   ```
   {
       "environmentTemplate": {
           "arn": "arn:aws:proton:us-east-1:123456789012:environment-template/env-template",
           "createdAt": "2021-11-07T23:32:43.045000+00:00",
           "displayName": "env-template",
           "lastModifiedAt": "2021-11-07T23:32:43.045000+00:00",
           "name": "env-template",
           "status": "DRAFT",
           "templateName": "env-template"
       }
   }
   ```

1. 

**以下を指定 AWS CLI して、 でテンプレート同期設定を作成します。**
   + 同期先のテンプレート。テンプレート同期設定の作成後も、コンソールまたは AWS CLIを通してテンプレート同期設定から手動で新しいバージョンを作成できます。
   + テンプレート名。
   + テンプレートタイプ。
   + 希望する同期元のリンク先リポジトリ。
   + リンクされたリポジトリプロバイダです。
   + テンプレートバンドルが配置されているブランチ。
   + (オプション) あなたのテンプレートバンドルがあるディレクトリパス。デフォルトでは、 はテンプレート名に一致する最初のディレクトリ AWS Proton を探します。

   以下のコマンドを実行してください。

   ```
   $ aws proton create-template-sync-config \
       --template-name "env-template" \
       --template-type "ENVIRONMENT" \
       --repository-name "myrepos/templates" \
       --repository-provider "GITHUB" \
       --branch "main" \
       --subdirectory "env-template/"
   ```

   レスポンスは次のとおりです。

   ```
   {
       "templateSyncConfigDetails": {
           "branch": "main",
           "repositoryName": "myrepos/templates",
           "repositoryProvider": "GITHUB",
           "subdirectory": "templates",
           "templateName": "env-template",
           "templateType": "ENVIRONMENT"
       }
   }
   ```

1. **テンプレートバージョンを公開するには、「[テンプレートを登録してパブリッシュする](template-create.md)」を参照してください。**

------

## サービステンプレートを同期する
<a name="create-template-sync-service-templates"></a>

前の例では、環境テンプレートを同期する方法を示します。サービステンプレートも同様です。サービステンプレートを同期するには、あなたのテンプレートバンドルの各メジャーバージョンディレクトリに `.template-registration.yaml` という名前のファイルを追加します。このファイルには、コミット後にサービステンプレートバージョンを作成するときに が AWS Proton 必要とする追加の詳細が含まれています。 AWS Proton コンソールまたは API を使用してサービステンプレートバージョンを明示的に作成する場合、これらの詳細を入力として指定します。このファイルはテンプレート同期のためにこれらの入力を置き換えます。

```
./templates/                                                 # subdirectory (optional)
 /templates/my-svc-template/                                 # service template name
 /templates/my-svc-template/v1/                              # service template version
 /templates/my-svc-template/v1/.template-registration.yaml   # service template version properties
 /templates/my-svc-template/v1/instance_infrastructure/      # template bundle
 /templates/my-svc-template/v1/schema/
```

`.template-registration.yaml` ファイルには次の詳細が含まれています。
+ **互換性のある環境** [必須] — これらの環境テンプレートとメジャーバージョンに基づく環境は、このサービステンプレートバージョンに基づくサービスと互換性があります。
+ **サポート対象のコンポーネントソース** [オプション] — これらのソースを使用するコンポーネントは、このサービステンプレートバージョンに基づくサービスと互換性があります。指定しないと、コンポーネントをこれらのサービスにアタッチできません。コンポーネントの詳細については、「[AWS Proton コンポーネント](ag-components.md)」を参照してください。

ファイルの YAML 構文は次のとおりです。

```
compatible_environments:
  - env-templ-name:major-version
  - ...
supported_component_sources:
  - DIRECTLY_DEFINED
```

1 つ以上の環境テンプレートとメジャーバージョンの組み合わせを指定します。`supported_component_sources` の指定はオプションです。サポートされている値は `DIRECTLY_DEFINED` だけです。

**Example .template-registration.yaml**  
この例では、サービステンプレートバージョンは `my-env-template` 環境テンプレートのメジャーバージョン 1 と 2 と互換性があります。また、`another-env-template` 環境テンプレートのメジャーバージョン 1 と 3 とも互換性があります。このファイルは `supported_component_sources` を指定していないため、このサービステンプレートバージョンに基づくサービスにはコンポーネントをアタッチできません。  

```
compatible_environments:
  - my-env-template:1
  - my-env-template:2
  - another-env-template:1
  - another-env-template:3
```

**注記**  
以前は、 は互換性のある環境を指定`.compatible-envs`するために別のファイル AWS Proton を定義していました。 AWS Proton は、下位互換性のためにそのファイルとその形式をサポートしています。このファイルは、拡張性がなく、コンポーネントなどの新しい機能をサポートできないため、これ以上の使用はお勧めしません。

# テンプレート同期設定の詳細を表示する
<a name="view-template-sync"></a>

コンソールまたは CLI を使用して、テンプレートの同期設定の詳細データを表示します。

------
#### [ AWS マネジメントコンソール ]

**コンソールを使用して、テンプレートの同期設定の詳細を表示します。**

1. ナビゲーションペインで、[**（環境またはサービス）テンプレート**] を選択します。

1. 詳細データを表示するには、テンプレート同期設定を作成したテンプレートの名前を選択します。

1. テンプレートの詳細ページで [**Sync (同期)**] タブを選択してテンプレート同期設定の詳細データを表示します。

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

** AWS CLI 同期されたテンプレートを表示するには、 を使用します。**

以下のコマンドを実行してください。

```
$ aws proton get-template-sync-config \
    --template-name "svc-template" \
    --template-type "SERVICE"
```

レスポンスは次のとおりです。

```
{
    "templateSyncConfigDetails": {
        "branch": "main",
        "repositoryProvider": "GITHUB",
        "repositoryName": "myrepos/myrepo",
        "subdirectory": "svc-template",
        "templateName": "svc-template",
        "templateType": "SERVICE"
    }
}
```

**を使用して AWS CLI 、テンプレートの同期ステータスを取得します。**

`template-version` を使用する場合、テンプレートのメジャーバージョンを入力します。

以下のコマンドを実行してください。

```
$ aws proton get-template-sync-status \
    --template-name "env-template" \
    --template-type "ENVIRONMENT" \
    --template-version "1"
```

------

# テンプレート同期設定を編集する
<a name="update-template-sync"></a>

`template-name` と `template-type` を除き、テンプレート同期設定パラメータは編集できます。

コンソールまたは CLI を使用してテンプレート同期設定を編集する方法を説明します。

------
#### [ AWS マネジメントコンソール ]

コンソールでテンプレート同期設定ブランチを編集します。

**テンプレートのリストで以下の操作をします。**

1. [AWS Proton コンソール](https://console.aws.amazon.com//proton/)で [**(Environment or Service) Templates ((環境またはサービス) テンプレート)**] を選択します。

1. テンプレートのリストで、編集したいテンプレート同期設定を含むテンプレートの名前を選択します。

1. テンプレートの詳細ページで [**Template Sync (テンプレート同期)**] タブを選択します。

1. [**Template Sync details (テンプレート同期の詳細)**] セクションで [**Edit (編集)**] を選択します。

1. **[編集]** ページの [**ソースコードリポジトリ**] セクションの [**ブランチ**] でブランチを選択し、[**設定を保存**] を選択します。

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

**次のコマンドとレスポンスの例は、CLI を使用してテンプレート同期設定 `branch` を編集する方法を示します。**

以下のコマンドを実行してください。

```
$ aws proton update-template-sync-config \
    --template-name "env-template" \
    --template-type "ENVIRONMENT" \
    --repository-provider "GITHUB" \
    --repository-name "myrepos/templates" \
    --branch "fargate" \
    --subdirectory "env-template"
```

レスポンスは次のとおりです。

```
{
    "templateSyncConfigDetails": {
        "branch": "fargate",
        "repositoryProvider": "GITHUB",
        "repositoryName": "myrepos/myrepo",
        "subdirectory": "templates",
        "templateName": "env-template",
        "templateType": "ENVIRONMENT"
    }
}
```

同様に、 を使用して AWS CLI 同期されたサービステンプレートを更新できます。

------

# テンプレート同期設定を削除する
<a name="delete-template-sync"></a>

コンソールまたは CLI を使用してテンプレート同期設定を削除します。

------
#### [ AWS マネジメントコンソール ]

**コンソールを使用してテンプレート同期設定を削除します。**

1. テンプレートの詳細ページで [**Sync (同期)**] タブを選択します。

1. [**Sync details (同期の詳細)**] セクションで [**Disconnect (切断)**] を選択します。

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

**次のコマンドとレスポンスの例は、 を使用して同期されたテンプレート設定 AWS CLI を削除する方法を示しています。**

以下のコマンドを実行してください。

```
$ aws proton delete-template-sync-config \
    --template-name "env-template" \
    --template-type "ENVIRONMENT"
```

レスポンスは次のとおりです。

```
{
    "templateSyncConfig": {
        "templateName": "env-template",
        "templateType": "ENVIRONMENT"
    }
}
```

------

# サービス同期設定
<a name="ag-service-sync-configs"></a>

サービス同期を使用すると、Git を使用して AWS Proton サービスを設定およびデプロイできます。サービス同期を使用して、Git リポジトリで定義された設定を使用して、 AWS Proton サービスへの初期デプロイと更新を管理できます。Git では、バージョントラッキングやプルリクエストなどの機能で、あなたのサービスの設定、管理、デプロイができます。サービス同期は、 AWS Proton と Git を組み合わせて、 AWS Proton テンプレートを通じて定義および管理される標準化されたインフラストラクチャをプロビジョニングするのに役立ちます。Service sync を利用すれば、あなたの Git リポジトリ内のサービス定義が管理され、ツールの切り替え回数を減らすことができます。Git のみを使用する場合と比較して、 テンプレートの標準化と での AWS Proton デプロイは、インフラストラクチャの管理に費やす時間を短縮するのに役立ちます。 AWS Proton また、 は、開発者チームとプラットフォームチームの両方により高い透明性と監査可能性を提供します。

## AWS Proton OPS ファイル
<a name="service-sync-ops"></a>

`proton-ops` ファイルは、 がサービスインスタンスの更新に使用される仕様ファイル AWS Proton を見つける場所を定義します。また、サービスインスタンスを更新する順序と、あるインスタンスから別のインスタンスに変更をプロモートするタイミングも定義されます。

この `proton-ops` ファイルでは、あなたのリンク先のリポジトリにある仕様ファイルまたは複数の仕様ファイルで、サービスインスタンスを同期できます。これを行うには、次の例のように `proton-ops` ファイルに同期ブロックを定義します。

**例 ./configuration/proton-ops.yaml:**

```
sync:
  services:
      frontend-svc:
          alpha:
              branch: dev
              spec: ./frontend-svc/test/frontend-spec.yaml
          beta:
              branch: dev
              spec: ./frontend-svc/test/frontend-spec.yaml
          gamma:
              branch: pre-prod
              spec: ./frontend-svc/pre-prod/frontend-spec.yaml
          prod-one:
              branch: prod
              spec: ./frontend-svc/prod/frontend-spec-second.yaml
          prod-two:
              branch: prod
              spec: ./frontend-svc/prod/frontend-spec-second.yaml
          prod-three:
              branch: prod
              spec: ./frontend-svc/prod/frontend-spec-second.yaml
```

前の例では、`frontend-svc` はサービス名で、`alpha`、`beta`、`gamma`、`prod-one`、`prod-two`、`prod-three` はインスタンスです。

`spec` ファイルは、すべてのインスタンスでも、`proton-ops` ファイル内で定義されているインスタンスのサブセットでもかまいません。ただし、少なくとも、ブランチ内で定義されたインスタンスと同期元の仕様が必要です。インスタンスが特定のブランチと `spec` ファイルの場所で `proton-ops` ファイルに定義されていないと、Service Sync ではそれらのインスタンスの作成や更新はできません。

以下の例は、`spec` がどのようになるかを示します。`proton-ops` ファイルはこれらの `spec` ファイルから同期されることに注意してください。

**例`./frontend-svc/test/frontend-spec.yaml`:**

```
proton: "ServiceSpec"
instances:
- name: "alpha"
  environment: "frontend-env"
  spec:
    port: 80
    desired_count: 1
    task_size: "x-small"
    image: "public.ecr.aws/z9d2n7e1/nginx:1.21.0"
- name: "beta"
  environment: "frontend-env"
  spec:
    port: 80
    desired_count: 1
    task_size: "x-small"
    image: "public.ecr.aws/z9d2n7e1/nginx:1.21.0"
```

**例`./frontend-svc/pre-prod/frontend-spec.yaml`:**

```
proton: "ServiceSpec"
instances:
- name: "gamma"
  environment: "frontend-env"
  spec:
    port: 80
    desired_count: 1
    task_size: "x-small"
    image: "public.ecr.aws/z9d2n7e1/nginx:1.21.0"
```

**例`./frontend-svc/prod/frontend-spec-second.yaml`:**

```
proton: "ServiceSpec"
instances:
- name: "prod-one"
  environment: "frontend-env"
  spec:
    port: 80
    desired_count: 1
    task_size: "x-small"
    image: "public.ecr.aws/z9d2n7e1/nginx:1.21.0"
- name: "prod-two"
  environment: "frontend-env"
  spec:
    port: 80
    desired_count: 1
    task_size: "x-small"
    image: "public.ecr.aws/z9d2n7e1/nginx:1.21.0"
- name: "prod-three"
  environment: "frontend-env"
  spec:
    port: 80
    desired_count: 1
    task_size: "x-small"
    image: "public.ecr.aws/z9d2n7e1/nginx:1.21.0"
```

インスタンスが同期されず、同期を試みても引き続き問題が発生する場合は、[https://docs.aws.amazon.com//proton/latest/APIReference/API_GetServiceInstanceSyncStatus.html](https://docs.aws.amazon.com//proton/latest/APIReference/API_GetServiceInstanceSyncStatus.html) API を呼び出すと問題を解決できる場合があります。

**注記**  
サービス同期を使用しているお客様は、引き続き AWS Proton 制限の対象となります。

**ブロッカー**

サービス同期を使用して AWS Proton サービスを同期することで、サービス仕様を更新し、Git リポジトリからサービスインスタンスを作成および更新できます。ただし、 AWS マネジメントコンソール または を使用してサービスまたはインスタンスを手動で更新する必要がある場合があります AWS CLI。

AWS Proton は、サービスインスタンスの更新やサービスインスタンスの削除など AWS CLI、 AWS マネジメントコンソール または を通じて行った手動の変更を上書きしないようにします。その場合、手動による変更を検出すると Service Sync は無効になり、 AWS Proton はサービス同期ブロッカーを自動的に作成します。

サービスに関連するブロッカーをすべて取得するには、サービスに関連付けられている `serviceInstance` をそれぞれ順番に実行する必要があります。
+ `serviceName` だけで `getServiceSyncBlockerSummary` API を呼び出します。
+ `serviceName` と `serviceInstanceName` で `getServiceSyncBlockerSummary` API を呼び出します。

これにより、最新のブロッカーとそれに関連するステータスのリストが返されます。**ACTIVE** とマークされているブロッカーがある場合は、`blockerId` と `resolvedReason` でそれぞれに AND を指定して `UpdateServiceSyncBlocker` API を呼び出して解決する必要があります。

サービスインスタンスを手動で更新または作成する場合、 はサービスインスタンスにサービス同期ブロッカー AWS Proton を作成します。 は他のすべてのサービスインスタンスの同期 AWS Proton を続行しますが、ブロッカーが解決されるまでこのサービスインスタンスの同期を無効にします。サービスからサービスインスタンスを削除すると、 はサービスにサービス同期ブロッカー AWS Proton を作成します。これにより AWS Proton 、ブロッカーが解決されるまで、 はサービスインスタンスを同期できなくなります。

アクティブなブロッカーがすべて揃ったら、`blockerId` と `resolvedReason` でアクティブなブロッカーごとに、 `UpdateServiceSyncBlocker` API を呼び出して問題をあなたが解決する必要があります。

を使用して AWS マネジメントコンソール、 に移動 AWS Proton して Service Sync タブを選択すると、**サービス同期**が無効になっているかどうかを判断できます。サービスやサービスインスタンスがブロックされている場合は、[**有効化**] ボタンが表示されます。サービス同期を有効にするには、[**有効化**] を選択します。

**Topics**
+ [AWS Proton OPS ファイル](#service-sync-ops)
+ [サービス同期設定を作成する](create-service-sync.md)
+ [サービス同期の設定の詳細が表示されます](get-service-sync.md)
+ [サービス同期設定を編集する](update-service-sync.md)
+ [サービス同期設定を削除する](delete-service-sync.md)

# サービス同期設定を作成する
<a name="create-service-sync"></a>



サービス同期設定は、 コンソールまたは を使用して作成できます AWS CLI。

------
#### [ AWS マネジメントコンソール ]

1. [**Choose a service template (サービステンプレートを選択する)**] ページでテンプレートを選択して [**Configure (設定する)**] を選択します。

1. [**Configure service (サービスを構成する)**] ページで [**Service details (サービス詳細)**] セクションの [**Service name**] に新しいサービス名を入力します。

1. (オプション) サービスの説明を入力します。

1. **アプリケーションソースコードリポジトリ**セクション**で、リンクされた Git リポジトリ**を選択して、既にリンクしているリポジトリを選択します AWS Proton。リンクされたリポジトリがまだない場合は、[**別の Git リポジトリをリンク**] を選択し、[[リポジトリへのリンクを作成する](https://docs.aws.amazon.com//proton/latest/userguide/ag-create-repo.html)] の指示に従ってください。

1. [**Repository (リポジトリ)**] であなたのソースコードが保存されているリポジトリの名前を選択します。

1. [**Branch (ブランチ)**] であなたのソースコードが保存されているリポジトリブランチの名前を選択します。

1. (オプション) [**Tags (タグ)**] セクションで [**Add new tag (新しいタグを追加)**] を選択し、キーと値を入力してカスタマーマネージドタグを作成します。

1. **[Next (次へ)]** をクリックします。

1. [**サービスインスタンスの設定**] ページの [**サービス定義ソース**] セクションで、[**Git からサービスを同期**] を選択します。

1. [**サービス定義ファイル**] セクションで、あなたの `proton-ops` ファイルを作成する場合は AWS Proton 、[**AWS Proton にファイルを作成させたい**] を選択します。このオプションを使用すると、 は指定した場所に `spec`と `proton-ops` ファイル AWS Proton を作成します。あなた自身の OPS ファイルを作成するには、[**独自のファイルを提供しています**] を選択します。

1. **サービス定義リポジトリ**セクションで、**リンクされた Git リポジトリ**を選択して、既にリンクしているリポジトリを選択します AWS Proton。

1. [**Repository name (リポジトリ名)**] でソースコードが含まれているリポジトリの名前を選択します。

1. **`proton-ops` ファイルブランチ**の場合、 が OPS と仕様ファイルを配置 AWS Proton するリストからブランチの名前を選択します。

1. [**サービスインスタンス**] セクションでは、`proton-ops` ファイル内の値に基づいて各フィールドが自動的に入力されます。

1. [**Next (次へ)**] を選択して入力を見直します。

1. **[作成]** を選択します。

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

**を使用してサービス同期設定を作成する AWS CLI**
+ 以下のコマンドを実行してください。

  ```
  $ aws proton create-service-sync-config \
      --resource "service-arn" \
      --repository-provider "GITHUB" \
      --repository "example/proton-sync-service" \
      --ops-file-branch "main" \
      --proton-ops-file "./configuration/custom-proton-ops.yaml" (optional)
  ```

  レスポンスは次のとおりです。

  ```
  {
      "serviceSyncConfig": {
          "branch": "main",
          "filePath": "./configuration/custom-proton-ops.yaml",
          "repositoryName": "example/proton-sync-service",
          "repositoryProvider": "GITHUB",
          "serviceName": "service name"
      }
  }
  ```

------

# サービス同期の設定の詳細が表示されます
<a name="get-service-sync"></a>

サービス同期の設定詳細データは、コンソールまたは AWS CLIの表示で確認できます。

------
#### [ AWS マネジメントコンソール ]

**コンソールを使用して、サービス同期の設定の詳細を表示します。**

1. ナビゲーションペインで [**Services (サービス)**] を選択します。

1. 詳細データを表示するには、サービス同期設定を作成したサービスの名前を選択します。

1. サービスの詳細ページで [**サービス同期**] タブを選択すると、サービス同期の設定詳細データが表示されます。

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

** AWS CLI を使用して、同期されたサービスを取得します。**

以下のコマンドを実行してください。

```
$ aws proton get-service-sync-config \
    --service-name "service name"
```

レスポンスは次のとおりです。

```
{
    "serviceSyncConfig": {
        "branch": "main",
        "filePath": "./configuration/custom-proton-ops.yaml",
        "repositoryName": "example/proton-sync-service",
        "repositoryProvider": "GITHUB",
        "serviceName": "service name"
    }
}
```

**を使用して AWS CLI 、サービス同期ステータスを取得します。**

以下のコマンドを実行してください。

```
$ aws proton get-service-sync-status \
    --service-name "service name"
```

------

# サービス同期設定を編集する
<a name="update-service-sync"></a>

サービス同期設定は、 コンソールまたは を使用して編集できます AWS CLI。



------
#### [ AWS マネジメントコンソール ]

コンソールでテンプレート同期設定を編集します。

1. ナビゲーションペインで [**Services (サービス)**] を選択します。

1. 詳細データを表示するには、サービス同期設定を作成したサービスの名前を選択します。

1. サービス詳細ページで、[**サービス同期タブ**] を選択します。

1. [**Services Sync**] セクションで、[**Edit**] を選択します。

1. [**Edit**] ページで、編集する情報を更新し、[**Save**] を選択します。

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

**次のコマンドとレスポンスの例は、 AWS CLIを使用してテンプレート同期設定を編集する方法を示します。**

以下のコマンドを実行してください。

```
$ aws proton update-service-sync-config \
    --service-name "service name" \
    --repository-provider "GITHUB" \
    --repository "example/proton-sync-service" \
    --ops-file-branch "main" \
    --ops-file "./configuration/custom-proton-ops.yaml"
```

レスポンスは次のとおりです。

```
{
    "serviceSyncConfig": {
        "branch": "main",
        "filePath": "./configuration/custom-proton-ops.yaml",
        "repositoryName": "example/proton-sync-service",
        "repositoryProvider": "GITHUB",
        "serviceName": "service name"
    }
}
```

------

# サービス同期設定を削除する
<a name="delete-service-sync"></a>

サービス同期設定は、 コンソールまたは を使用して削除できます AWS CLI。

------
#### [ AWS マネジメントコンソール ]

**コンソールでサービス同期設定を削除します。**

1. サービスの詳細ページで、[**Service Sync**]タブを選択します。

1. [**サービス同期の詳細**] セクションで、[**Disconnect**] を選択してあなたのリポジトリを切断します。あなたのリポジトリが切断されると、そのリポジトリからのサービスは同期されなくなります。

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

**次のコマンドとレスポンスの例は、 を使用してサービス同期設定 AWS CLI を削除する方法を示しています。**

以下のコマンドを実行してください。

```
$ aws proton delete-service-sync-config \
    --service-name "service name"
```

レスポンスは次のとおりです。

```
{
    "serviceSyncConfig": {
        "branch": "main",
        "filePath": "./configuration/custom-proton-ops.yaml",
        "repositoryName": "example/proton-sync-service",
        "repositoryProvider": "GITHUB",
        "serviceName": "service name"
    }
}
```

**注記**  
Service Sync ではサービスインスタンスは削除されません。設定のみを削除します。

------