テンプレート同期設定を作成する - AWS Proton

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

テンプレート同期設定を作成する

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

テンプレート同期設定の前提条件を作成します。
リポジトリリンクは以下で構成されます。
  • リポジトリにアクセスして通知をサブスクライブするアクセス AWS Proton 許可を に付与する CodeConnections 接続。

  • サービスリンクロール あなたのリポジトリをリンクすると、サービスリンクロールが作成されます。

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

/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 することで、コンソールまたは でテンプレートの新しいバージョンを手動で作成できます。テンプレートの同期は、リポジトリから への一方向にのみ機能します AWS Proton。手動で作成したテンプレートのバージョンは同期されません

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

たとえば、my-env-template というテンプレートがあってブランチ mainmy-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 Management Console
テンプレートを使用して、テンプレートとテンプレート同期設定を作成します。
  1. AWS Proton コンソールで [Environment templates (環境テンプレート)] を選択します。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  16. ナビゲーションペインで [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" } }
  2. 以下を指定 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" } }
  3. テンプレートバージョンを公開するには、「テンプレートを登録してパブリッシュする」を参照してください。

サービステンプレートを同期する

前の例では、環境テンプレートを同期する方法を示します。サービステンプレートも同様です。サービステンプレートを同期するには、あなたのテンプレートバンドルの各メジャーバージョンディレクトリに .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 コンポーネント」を参照してください。

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

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

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

例 .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
注記

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