다음에 대한 템플릿 파일을 마무리합니다. AWS Proton - AWS Proton

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

다음에 대한 템플릿 파일을 마무리합니다. AWS Proton

환경 및 서비스 코드형 인프라(IaC) 파일과 해당 스키마 파일을 준비한 후에는 디렉토리로 구성해야 합니다. 또한 매니페스트 YAML 파일을 만들어야 합니다. 매니페스트 파일에는 디렉토리의 IaC 파일, 렌더링 엔진 및 이 템플릿의 IaC를 개발하는 데 사용된 템플릿 언어가 나열됩니다.

참고

매니페스트 파일은 템플릿 번들과 매니페스트독립적으로 직접 정의된 구성 요소에 대한 직접 입력으로 사용할 수도 있습니다. 이 경우 항상 Terraform과 Terraform 모두에 CloudFormation 대해 단일 IaC 템플릿 파일을 지정합니다. 구성 요소에 대한 자세한 내용은 AWS Proton 구성 요소를 참조하세요.

매니페스트 파일은 다음 예제와 일치해야 합니다.

CloudFormation 매니페스트 파일 형식:

CloudFormation를 사용하면 파일 하나를 나열할 수 있습니다.

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

Terraform 매니페스트 파일 형식:

Terraform을 사용하면 단일 파일을 명시적으로 나열하거나 와일드카드 *를 사용하여 디렉터리의 각 파일을 나열할 수 있습니다.

참고

와일드카드에는 이름이 .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 }}"

환경 또는 서비스 템플릿 번들에 대한 디렉터리 및 매니페스트 파일을 설정한 후에는 디렉터리를 타르 볼로 압축하여 검색할 AWS Proton 수 있는 Amazon Simple Storage Service (Amazon S3) 버킷이나 템플릿 동기화 Git 리포지토리에 업로드합니다.

등록한 환경 또는 서비스 템플릿의 마이너 버전을 생성할 때는 S3 버킷에 있는 AWS Proton환경 또는 서비스 템플릿 번들 타르 볼의 경로를 제공합니다. AWS Proton 새 템플릿 마이너 버전과 함께 저장합니다. 새 템플릿 마이너 버전을 선택하여 환경 또는 서비스를 만들거나 업데이트할 수 AWS Proton있습니다.

환경 템플릿 번들 마무리

만드는 데 사용할 환경 템플릿 번들에는 두 가지 유형이 있습니다. AWS Proton

  • 표준 환경 템플릿용 환경 템플릿 번들을 만들려면 다음 환경 템플릿 번들 디렉터리 구조와 같이 스키마, 코드형 인프라(IaC) 파일 및 매니페스트 파일을 디렉터리에 구성하세요.

  • 고객 관리형 환경 템플릿용 환경 템플릿 번들을 만들려면 스키마 파일과 디렉토리만 제공하세요. 인프라 디렉터리와 파일은 포함하지 마세요. AWS Proton 인프라 디렉터리와 파일이 포함된 경우 오류가 발생합니다.

자세한 설명은 템플릿 등록 및 게시 섹션을 참조하세요.

CloudFormation 환경 템플릿 번들 디렉토리 구조:

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

Terraform 환경 템플릿 번들 디렉토리 구조:

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

서비스 템플릿 번들 마무리

서비스 템플릿 번들을 생성하려면 서비스 템플릿 번들 디렉터리 구조 예제와 같이 스키마, 코드형 인프라(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