CDK - Context
AWS CDK는 컨텍스트를 사용하여 계정의 가용 영역 또는 인스턴스를 시작하는데 사용되는 AMI ID와 같은 정보를 얻습니다. 컨텍스트 항목은 키-값 페어로 구성되어 있습니다. 예를 들어, 새로운 Amazon Linux AMI 가 릴리즈되어 Auto Scaling 그룹이 변경될 때 배포가 예기치 않게 변경되는 것을 방지하기 위해 AWS CDK는 컨텍스트 값을 프로젝트 내의 cdk.context.json 파일에 저장합니다. 이렇게 하면 다음에 앱을 합성할 때 AWS CDK가 동일한 컨텍스트 값을 사용합니다. 이 파일을 버전 관리하는 것을 잊지 마세요!
Construct Context
컨텍스트 값은 다음 다섯 가지 방법으로 AWS CDK 앱에서 사용할 수 있습니다.
- cdk 커맨드의 --context 옵션
- cdk.json 파일의 context 값
- ~/cdk.json 파일의 context 값
- 코드로 construct.node.setContext 메소드 사용
- 현재 AWS 계정으로부터 자동으로 사용
construct.node.tryGetContext 메소드를 통해서 컨텍스트 값을 얻을 수 있습니다. 요청된 항목이 현재 구문이나 부모에서 발견되지 않으면 결과는 undefined 입니다.
Context Methods
CDK는 CDK App 이 컨텍스트 정보를 얻을 수 있는 몇가지 방법을 제공합니다.
- HostedZone.fromLookup : Gets the hosted zones in your account.
- stack.availabilityZones : Gets the supported Availability Zones.
- StringParameter.valueFromLookup : Gets a value from the current Region's Amazon EC2 Systems Manager Parameter Store.
- Vpc.fromLookup : Gets the existing Amazon Virtual Private Clouds in your accounts.
- LookupMachineImage : Looks up a machine image for use with a NAT instance in an Amazon Virtual Private Cloud.
만약 지정된 컨텍스트 정보를 사용할 수 없는 경우 CDK App은 CDK CLI에 컨텍스트 정보가 누락되었음을 알립니다. 그런 다음 CLI는 정보에 대한 현재 AWS 계정을 쿼리하고 결과 컨텍스트 정보를 cdk.context.json 파일에 저장한 다음 컨텍스트 값으로 AWS CDK App을 다시 실행합니다.
cdk.context.json 파일을 소스 저장소에 추가하는 것을 잊지 마십시오!
Viewing and Managing Context
cdk context 커맨드를 통해 cdk.context.json 파일에 있는 정보를 보거나 관리할 수 있습니다. 정보를 보기 위해서는 cdk. context 커맨드를 옵션없이 사용하세요.
context 값을 삭제하기 위해서는 아래와 같이 삭제할 번호와 같이 사용하세요.
최신 버전의 AMI 로 업데이트 하는 경우 위의 예제를 사용하여 컨텍스트 값을 업데이트 하고, 재설정 한 다음 앱을 다시 합성하고 배포할 수 있습니다.
모든 context 값을 초기화 하고 싶으면, 아래와 같이 사용하세요.
Example
다음은 AWS CDK 컨텍스트를 사용하여 기존 Amazon VPC를 가져오는 typescript 예제 입니다.
cdk diff 를 사용하여 명령 행에서 컨텍스트 값을 전달하는 것을 확인할 수 있습니다.
컨텍스트 결과는 아래의 예제로 볼수가 있습니다.
댓글
댓글 쓰기