AWS CDK 기능 플래그 - AWS Cloud Development Kit (AWS CDK) v2

이는 AWS CDK v2 개발자 안내서입니다. 이전 CDK v1은 2022년 6월 1일에 유지 관리에 들어갔으며 2023년 6월 1일에 지원이 종료되었습니다.

AWS CDK 기능 플래그

AWS CDK는 기능 플래그를 사용하여 릴리스에서 잠재적으로 중단되는 동작을 활성화합니다. 플래그는 cdk.json 또는 ~/.cdk.json컨텍스트 값 및 AWS CDK 값으로 저장됩니다. cdk context --reset 또는 cdk context --clear 명령으로 제거되지 않습니다.

기능 플래그는 기본적으로 비활성화되어 있습니다. 플래그를 지정하지 않은 기존 프로젝트는 이후 AWS CDK 릴리스에서 이전과 같이 계속 작동합니다. cdk init를 사용하여 생성된 새 프로젝트에는 프로젝트를 생성한 릴리스에서 사용할 수 있는 모든 기능을 활성화하는 플래그가 포함됩니다. cdk.json을 편집하여 이전 동작을 선호하는 플래그를 비활성화합니다. AWS CDK를 업그레이드한 후 새 동작을 활성화하는 플래그를 추가할 수도 있습니다.

현재 모든 기능 플래그 목록은 FEATURE_FLAGS.md의 AWS CDK GitHub 리포지토리에서 확인할 수 있습니다. 해당 릴리스에 추가된 새 기능 플래그에 대한 설명은 해당 릴리스의 CHANGELOG 섹션을 참조하세요.

v1 동작으로 되돌리기

CDK v2에서는 v1과 관련하여 일부 기능 플래그의 기본값이 변경되었습니다. AWS CDK v1의 특정 동작으로 되돌리려면 이 값을 false로 설정할 수 있습니다. cdk diff 명령을 사용하여 합성된 템플릿의 변경 사항을 검사하여 이러한 플래그가 필요한지 확인합니다.

@aws-cdk/core:newStyleStackSynthesis

이름이 잘 알려진 부트스트랩 리소스를 수임하는 새 스택 합성 메서드를 사용합니다. 최신 부트스트래핑이 필요하지만 CDK Pipelines를 통한 CI/CD 및 교차 계정 배포를 즉시 허용합니다.

@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId

애플리케이션이 여러 Amazon API Gateway API 키를 사용하고 이를 사용 계획에 연결하는 경우

@aws-cdk/aws-rds:lowercaseDbIdentifier

애플리케이션이 Amazon RDS 데이터베이스 인스턴스 또는 데이터베이스 클러스터를 사용하고 이에 대한 식별자를 명시적으로 지정하는 경우

@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021

애플리케이션이 Amazon CloudFront 배포와 함께 TLS_V1_2_2019 보안 정책을 사용하는 경우 CDK v2는 기본적으로 보안 정책 TLSv1.2_2021을 사용합니다.

@aws-cdk/core:stackRelativeExports

애플리케이션이 여러 스택을 사용하고 한 스택의 리소스를 다른 스택에서 참조하는 경우 절대 경로나 상대 경로를 사용하여 AWS CloudFormation 내보내기를 생성할지 결정합니다.

@aws-cdk/aws-lambda:recognizeVersionProps

false로 설정하면 Lambda 함수가 변경되었는지 여부를 탐지할 때 CDK에 메타데이터가 포함됩니다. 중복 버전은 허용되지 않으므로 메타데이터만 변경되면 배포가 실패할 수 있습니다. 애플리케이션의 모든 Lambda 함수를 하나 이상 변경한 경우 이 플래그를 되돌릴 필요가 없습니다.

cdk.json에서 이러한 플래그를 되돌리기 위한 구문이 여기에 표시됩니다.

{ "context": { "@aws-cdk/core:newStyleStackSynthesis": false, "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": false, "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": false, "@aws-cdk/aws-rds:lowercaseDbIdentifier": false, "@aws-cdk/core:stackRelativeExports": false, "@aws-cdk/aws-lambda:recognizeVersionProps": false } }