のテンプレートファイルをまとめる AWS Proton - AWS Proton

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

のテンプレートファイルをまとめる AWS Proton

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

注記

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

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

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

では CloudFormation、1 つのファイルを一覧表示します。

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 ball に圧縮し、 がディレクトリを取得 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) ファイル、マニフェストファイルをディレクトリに編成します。

  • カスタマーマネージド環境テンプレートの環境テンプレートバンドルを作成するには。スキーマファイルとディレクトリのみを指定します。インフラストラクチャディレクトリとファイルが含まれている場合は、インフラストラクチャディレクトリと files. AWS Proton throws を含めないでください

詳細については、「テンプレートを登録してパブリッシュする」を参照してください。

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