v AWS CDK 2 개발자 안내서입니다. 이전 CDK v1은 2022년 6월 1일에 유지 관리에 들어갔으며 2023년 6월 1일에 지원이 종료되었습니다.
기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
측면은 지정된 범위의 모든 구문에 작업을 적용하는 방법입니다. 이러한 측면은 태그를 추가하는 등의 방식으로 구문을 수정할 수 있습니다. 또는 모든 버킷이 암호화되어 있는지 확인하는 등 구문의 상태에 대한 내용을 확인할 수도 있습니다.
구문과 같은 범위의 모든 구문에 측면을 적용하려면 다음 예와 같이 새 측면을 사용하여 Aspects
.of(
를 직접적으로 호출합니다.SCOPE
).add()
Aspects.of(myConstruct).add(new SomeAspect(...));
는 측면을 AWS CDK 사용하여 리소스에 태그를 지정하지만 프레임워크는 다른 용도로도 사용할 수 있습니다. 예를 들어, 이를 사용하여 상위 수준 구문으로 정의된 AWS CloudFormation 리소스를 검증하거나 변경할 수 있습니다.
측면 세부 정보
측면은 방문자 패턴
interface IAspect {
visit(node: IConstruct): void;}
Aspects.of(
를 직접적으로 호출하면 구문이 내부 측면 목록에 측면을 추가합니다. SCOPE
).add(...)Aspects.of(
를 사용하여 목록을 얻을 수 있습니다.SCOPE
)
준비 단계에서는 구문 및 각 하위에 대한 객체의 visit
메서드를 하향식 순서로 AWS CDK 호출합니다.
visit
메서드는 구문의 모든 것을 자유롭게 변경할 수 있습니다. 강력한 형식의 언어에서는 구문별 속성이나 메서드에 액세스하기 전에 수신된 구문을 더 구체적인 형식으로 캐스팅합니다.
Stages
은 독립적이고 정의 후 변경할 수 없기 때문에 측면이 Stage
구문 경계를 넘어 전파되지 않습니다. Stage
내부의 구문을 방문하게 하려면 Stage
구문 자체 또는 그 아래에 측면을 적용합니다.
예제
다음 예에서는 스택에서 생성된 모든 버킷에 버전 관리가 활성화되어 있는지 검증합니다. 측면이 검증에 실패한 구문에 오류 주석을 추가합니다. 이로 인해 synth 작업이 실패하고 결과적으로 생성된 클라우드 어셈블리가 배포되지 않습니다.
class BucketVersioningChecker implements IAspect {
public visit(node: IConstruct): void {
// See that we're dealing with a CfnBucket
if (node instanceof s3.CfnBucket) {
// Check for versioning property, exclude the case where the property
// can be a token (IResolvable).
if (!node.versioningConfiguration
|| (!Tokenization.isResolvable(node.versioningConfiguration)
&& node.versioningConfiguration.status !== 'Enabled')) {
Annotations.of(node).addError('Bucket versioning is not enabled');
}
}
}
}
// Later, apply to the stack
Aspects.of(stack).add(new BucketVersioningChecker());