

サポート終了通知: 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-wrap-up"></a>

環境とサービスの Infrastructure as Code (IaC) ファイルとそれぞれのスキーマファイルを準備したら、それらをディレクトリに編成する必要があります。マニフェスト YAML ファイルも作成する必要があります。マニフェストファイルには、ディレクトリ内の IaC ファイル、レンダリングエンジン、およびこのテンプレート内の IaC の開発に使用されたテンプレート言語が記載されています。

**注記**  
マニフェストファイルは、テンプレートバンドルとは別に、*直接定義されたコンポーネント*への直接入力として使用することもできます。この場合、CloudFormation と Terraform の両方について、常に単一の IaC テンプレートファイルが指定されます。コンポーネントの詳細については、「[AWS Proton コンポーネント](ag-components.md)」を参照してください。

マニフェストファイルは、次の例に示す形式と内容に従う必要があります。

**CloudFormation マニフェストファイル形式:**

CloudFormation では、リストに単一のファイルを含めます。

```
infrastructure:
  templates:
    - file: "cloudformation.yaml"
      rendering_engine: jinja
      template_language: cloudformation
```

**Terraform マニフェストファイル形式:**

terraform では、1 つのファイルを明示的にリストに入れるか、またはワイルドカード `*` でディレクトリ内の各ファイルをリストに加えます。

**注記**  
ワイルドカードには、名前が `.tf` で終わるファイルのみが含まれます。他のファイルは無視されます。

```
infrastructure:
  templates:
    - file: "*"
      rendering_engine: hcl
      template_language: terraform
```

**CodeBuild ベースのプロビジョニングマニフェストファイル形式:**

CodeBuild ベースのプロビジョニングでは、プロビジョニングシェルコマンドとデプロビジョニングシェルコマンドを指定します。

**注記**  
マニフェストだけでなく、バンドルにもあなたのコマンドが依存するすべてのファイルを含めておく必要があります。

次のマニフェスト例では、CodeBuild ベースのプロビジョニングを使用して、 AWS Cloud Development Kit (AWS CDK) () を使用してリソースをプロビジョニング (*デプロイ*) およびプロビジョニング解除 (*破棄*) しますAWS CDK。テンプレートバンドルには CDK コードも含めておく必要があります。

プロビジョニング中に、AWS Protonは、テンプレートのスキーマに名前 `proton-input.json` で定義した入力パラメータの値を含む入力ファイルを作成します。

```
infrastructure:
  templates:
    - rendering_engine: codebuild
      settings:
        image: aws/codebuild/amazonlinux2-x86_64-standard:4.0
        runtimes:
          nodejs: 16
        provision:
          - npm install
          - npm run build
          - npm run cdk bootstrap
          - npm run cdk deploy -- --require-approval never --outputs-file proton-outputs.json
          - jq 'to_entries | map_values(.value) | add | to_entries | map({key:.key, valueString:.value})' < proton-outputs.json > outputs.json
          - aws proton notify-resource-deployment-status-change --resource-arn $RESOURCE_ARN --status IN_PROGRESS --outputs file://./outputs.json
        deprovision:
          - npm install
          - npm run build
          - npm run cdk destroy
        project_properties:
          VpcConfig:
            VpcId: "{{ environment.inputs.codebuild_vpc_id }}"
            Subnets: "{{ environment.inputs.codebuild_subnets }}"
            SecurityGroupIds: "{{ environment.inputs.codebuild_security_groups }}"
```

環境またはサービステンプレートバンドルのディレクトリとマニフェストファイルをセットアップしたら、ディレクトリを tar ボールに gzip して、 が取得 AWS Proton できる Amazon Simple Storage Service (Amazon S3) バケット、または[テンプレート同期 Git リポジトリ](ag-template-sync-configs.md)にアップロードします。

登録した環境またはサービステンプレートのマイナーバージョンを作成するときは AWS Proton、S3 バケットにある環境またはサービステンプレートバンドル tar ball へのパスを指定します。 AWS Proton は、新しいテンプレートのマイナーバージョンで保存します。新しいテンプレートのマイナーバージョンを選択して、環境またはサービスを作成または更新できます AWS Proton。

## 環境テンプレートバンドルのまとめ
<a name="environment-wrap-up"></a>

作成する環境テンプレートバンドルには 2 つのタイプがあります AWS Proton。
+ *標準*環境テンプレートの環境テンプレートバンドルを作成するには、以下の環境テンプレートバンドルのディレクトリ構造のように、スキーマ、Infrastructure as Code (IaC) ファイル、マニフェストファイルをディレクトリに編成します。
+ *カスタマーマネージド*環境テンプレートの環境テンプレートバンドルを作成するには。スキーマファイルとディレクトリのみを指定します。インフラストラクチャディレクトリとファイルを含め*ないでください*。インフラストラクチャディレクトリとファイルが含まれている場合 AWS Proton 、エラーが発生します。

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

CloudFormation 環境テンプレートバンドルディレクトリ構造:

```
 /schema
   schema.yaml
 /infrastructure
   manifest.yaml
   cloudformation.yaml
```

Terraform 環境テンプレートバンドルディレクトリ構造:

```
 /schema
   schema.yaml
 /infrastructure
   manifest.yaml
   environment.tf
```

## サービステンプレートバンドルをまとめる
<a name="service-wrap-up"></a>

サービステンプレートバンドルを作成するには、サービステンプレートバンドルのディレクトリ構造例に示すように、スキーマ、Infrastructure as Code (IaC) ファイル、およびマニフェストファイルをディレクトリに編成する必要があります。

あなたのテンプレートバンドルにサービスパイプラインを*含めない*場合は、このテンプレートバンドルに関連付けるサービステンプレートを作成するときに、パイプラインディレクトリとファイルを*含めず*、`"pipelineProvisioning": "CUSTOMER_MANAGED"` を設定してください。

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

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

CloudFormation サービステンプレートバンドルディレクトリ構造:

```
 /schema
   schema.yaml
 /instance_infrastructure
   manifest.yaml
   cloudformation.yaml
 /pipeline_infrastructure
   manifest.yaml
   cloudformation.yaml
```

Terraform サービステンプレートバンドルディレクトリ構造:

```
 /schema
   schema.yaml
 /instance_infrastructure
   manifest.yaml
   instance.tf
 /pipeline_infrastructure
   manifest.yaml
   pipeline.tf
```