기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
다음에 대한 템플릿 파일을 마무리합니다. 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 }}"
등록한 환경 또는 서비스 템플릿의 마이너 버전을 생성할 때는 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