CDK Toolkit 인스턴스 구성 - AWS 클라우드 개발 키트(AWS CDK) v2

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

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

CDK Toolkit 인스턴스 구성

메시지 처리, AWS 프로필 선택 및 스택 선택 전략을 위한 옵션으로 AWS CDK Toolkit Library 인스턴스를 사용자 지정하는 방법을 알아봅니다. 이 가이드에서는 사용 가능한 구성 옵션과 특정 배포 요구 사항에 맞게 효과적으로 구현하는 방법을 설명합니다.

AWS 프로필 구성

CDK Toolkit Library를 사용하면 SDK를 AWS 사용하여에 대한 API 호출을 수행합니다. 환경에서 인증이 자동으로 로드되는 동안 사용할 프로필을 명시적으로 지정할 수 있습니다.

import { Toolkit } from '@aws-cdk/toolkit-lib'; // Create a toolkit instance with a specific AWS profile const toolkit = new Toolkit({ sdkConfig: { profile: "my-profile" }, });

스택 선택 구성

대부분의 CDK Toolkit 작업에서는 작업할 스택을 지정해야 합니다. StackSelector 구성은이 선택을 제어합니다.

모든 스택 선택

CDK 앱의 모든 스택에서 작업하려는 경우이 옵션을 사용합니다.

import { StackSelectionStrategy } from '@aws-cdk/toolkit-lib'; // Select all stacks in the cloud assembly await toolkit.deploy(cloudAssemblySource, { stacks: { strategy: StackSelectionStrategy.ALL_STACKS } });

기본 어셈블리 스택만 선택

이를 사용하여 기본 어셈블리에서 최상위 스택만 선택합니다.

// Select only top-level stacks await toolkit.deploy(cloudAssemblySource, { stacks: { strategy: StackSelectionStrategy.MAIN_ASSEMBLY } });

단일 스택 선택

어셈블리에 정확히 하나의 스택이 포함되어 있고이 조건을 어설션하려는 경우이 옵션을 사용합니다. 어셈블리에 단일 스택이 포함된 경우 해당 스택을 반환합니다. 그렇지 않으면 예외가 발생합니다.

// Ensure there's exactly one stack and select it await toolkit.deploy(cloudAssemblySource, { stacks: { strategy: StackSelectionStrategy.ONLY_SINGLE } });

패턴별 스택 선택

이를 사용하여 이름 패턴별로 특정 스택을 선택합니다.

// Select stacks matching specific patterns await toolkit.deploy(cloudAssemblySource, { stacks: { strategy: StackSelectionStrategy.PATTERN_MUST_MATCH, patterns: ["Dev-*", "Test-Backend"], // Supports wildcards } });
작은 정보

PATTERN_MUST_MATCH_SINGLE를 사용하여 정확히 하나의 스택이 패턴과 일치하는지 확인하거나 일치하는 스택이 없는 것이 허용되는PATTERN_MATCH지 확인합니다. 패턴 일치는 이름이 비슷한 여러 스택을 일치시키기 위해 "*"와 같은 와일드카드를 지원합니다.

오류 처리 구성

CDK Toolkit은 구조화된 오류를 사용하여 문제를 식별하고 처리하는 데 도움이 됩니다. 각 오류에는 다음이 포함됩니다.

  • 오류가 발생한 위치(도구 키트 또는 사용자)를 나타내는 소스입니다.

  • 특정 오류 유형(인증, 검증 등).

  • 설명이 포함된 메시지입니다.

오류 처리

CDK Toolkit에서 제공하는 헬퍼 메서드를 사용하여 특정 오류 유형을 감지하고 처리합니다.

import { ToolkitError } from '@aws-cdk/toolkit-lib'; try { // Attempt a CDK Toolkit operation await toolkit.deploy(cloudAssemblySource, { stacks: { strategy: StackSelectionStrategy.ALL_STACKS } }); } catch (error) { // Handle specific error types if (ToolkitError.isAuthenticationError(error)) { // Example: AWS credentials are missing or invalid console.error('Authentication failed. Check your AWS credentials.'); } else if (ToolkitError.isAssemblyError(error)) { // Example: Your CDK app has errors in stack definitions console.error('CDK app error:', error.message); } else if (ToolkitError.isDeploymentError(error)) { // Example: CloudFormation deployment failed console.error('Deployment failed:', error.message); } else if (ToolkitError.isToolkitError(error)) { // Handle all other Toolkit errors console.error('CDK Toolkit error:', error.message); } else { // Handle unexpected errors console.error('Unexpected error:', error); } }
중요

동일한 패키지의 여러 복사본으로 작업할 때 예기치 않게 작동할 수 있으므로 오류 유형에 대한 instanceof 검사에 의존하지 마세요. 항상와 같이 제공된 헬퍼 메서드를 사용합니다ToolkitError.isAuthenticationError().

도구 키트 작업 구성

각 CDK Toolkit 작업(배포, 구문, 목록 등)에는 고유한 구성 옵션이 있습니다. 이러한 작업을 통해 CDK 인프라의 전체 수명 주기를 관리할 수 있습니다. 개별 작업 구성에 대한 자세한 내용은 CDK Toolkit 프로그래밍 방식 작업 구성을 참조하세요.

작은 정보

자동화 워크플로를 구축할 때는 여러 작업을 순차적으로 결합하는 것이 좋습니다. 예를 들어 앱, list 스택을 통해 배포할 항목을 확인한 다음 deploy 인프라를 확인할 수 synth 있습니다.