翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
のテンプレートファイルをまとめる AWS Proton
環境とサービスの Infrastructure as Code (IaC) ファイルとそれぞれのスキーマファイルを準備したら、それらをディレクトリに編成する必要があります。マニフェスト YAML ファイルも作成する必要があります。マニフェストファイルには、ディレクトリ内の IaC ファイル、レンダリングエンジン、およびこのテンプレート内の IaC の開発に使用されたテンプレート言語が記載されています。
注記
マニフェストファイルは、テンプレートバンドルとは別に、直接定義されたコンポーネントへの直接入力として使用することもできます。この場合、CloudFormation と Terraform の両方について、常に単一の IaC テンプレートファイルが指定されます。コンポーネントの詳細については、「AWS Proton コンポーネント」を参照してください。
マニフェストファイルは、次の例に示す形式と内容に従う必要があります。
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 リポジトリにアップロードします。
登録した環境またはサービステンプレートのマイナーバージョンを作成するときは AWS Proton、S3 バケットにある環境またはサービステンプレートバンドル tar ball へのパスを指定します。 AWS Proton は、新しいテンプレートのマイナーバージョンで保存します。新しいテンプレートのマイナーバージョンを選択して、環境またはサービスを作成または更新できます AWS Proton。
環境テンプレートバンドルのまとめ
作成する環境テンプレートバンドルには 2 つのタイプがあります AWS Proton。
-
標準環境テンプレートの環境テンプレートバンドルを作成するには、以下の環境テンプレートバンドルのディレクトリ構造のように、スキーマ、Infrastructure as Code (IaC) ファイル、マニフェストファイルをディレクトリに編成します。
-
カスタマーマネージド環境テンプレートの環境テンプレートバンドルを作成するには。スキーマファイルとディレクトリのみを指定します。インフラストラクチャディレクトリとファイルを含めないでください。インフラストラクチャディレクトリとファイルが含まれている場合 AWS Proton 、エラーが発生します。
詳細については、「テンプレートを登録してパブリッシュする」を参照してください。
CloudFormation 環境テンプレートバンドルディレクトリ構造:
/schema schema.yaml /infrastructure manifest.yaml cloudformation.yaml
Terraform 環境テンプレートバンドルディレクトリ構造:
/schema schema.yaml /infrastructure manifest.yaml environment.tf
サービステンプレートバンドルをまとめる
サービステンプレートバンドルを作成するには、サービステンプレートバンドルのディレクトリ構造例に示すように、スキーマ、Infrastructure as Code (IaC) ファイル、およびマニフェストファイルをディレクトリに編成する必要があります。
あなたのテンプレートバンドルにサービスパイプラインを含めない場合は、このテンプレートバンドルに関連付けるサービステンプレートを作成するときに、パイプラインディレクトリとファイルを含めず、"pipelineProvisioning": "CUSTOMER_MANAGED"
を設定してください。
注記
サービステンプレートの作成後は、pipelineProvisioning
を変更できません。
詳細については、「テンプレートを登録してパブリッシュする」を参照してください。
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