CDK AWS v2 개발자 안내서입니다. 이전 CDK v1은 2022년 6월 1일에 유지 관리에 들어갔으며 2023년 6월 1일에 지원이 종료되었습니다.
기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
cdk refactor
중요
cdk refactor
명령은 미리 보기 릴리스이며 변경될 수 있습니다.
이 명령을 사용할 때는 --unstable=refactor
옵션을 제공해야 합니다.
AWS 클라우드 개발 키트(AWS CDK) 애플리케이션에서 코드를 리팩터링할 때 배포된 리소스를 보존합니다.
구문의 이름을 바꾸거나 CDK 코드의 스택 간에 이동할 때 CloudFormation은 일반적으로 구문을 새 리소스로 취급하여 서비스 중단 또는 데이터 손실로 이어질 수 있는 대체를 발생시킵니다. cdk refactor
명령은 이러한 변경 사항을 지능적으로 감지하고 CloudFormation의 리팩터링 API와 함께 작동하여 리소스를 유지하면서 논리적 IDs.
cdk refactor
를 사용하여 다음을 수행할 수 있습니다.
-
리소스 교체 없이 코드 베이스의 명확성을 높이기 위해 구문의 이름을 바꿉니다.
-
스택 간에 리소스를 이동하여 우려 사항의 구성 및 분리를 개선합니다.
-
기본 클라우드 리소스를 유지하면서 구문 계층 구조(예: 새 L3 구문으로 AWS 리소스 그룹화)를 재구성합니다.
-
논리적 IDs.
이 명령은 변경 사항을 분석하고, 위치(스택 및 논리적 ID)를 변경하는 리소스 목록을 표시하고, 자격 증명과 상태를 유지하면서 CloudFormation 리소스를 업데이트하는 복잡한 프로세스를 처리합니다.
실행 시 명령은 현재 코드를 배포된 상태와 비교하여 매핑을 자동으로 계산합니다. CDK 애플리케이션에 배포된 상태와 정확히 동일한 리소스 세트가 포함되어 있는지 확인하며, 구성 트리의 위치만 다릅니다. 명령이 리소스 추가, 삭제 또는 수정을 감지하면 리팩터링 작업이 오류 메시지와 함께 거부됩니다.
매핑 계산 후 명령은 제안된 변경 사항을 표시하고 사용자 확인 후 리팩터링을 적용합니다. 모호성이 감지되면(유효한 매핑이 여러 개 가능한 경우) 이러한 사례를 해결하기 위해 명시적 매핑이 포함된 재정의 파일을 제공할 수 있습니다.
소개는 CDK 코드 리팩터링 시 배포된 리소스 보존을 참조하세요.
사용량
$ cdk refactor <arguments> <options>
인수
- CDK 스택 ID
-
리팩터링할 앱에서 CDK 스택의 구성 ID입니다.
여러 스택 IDs 지정하여 해당 스택에서 리팩터링 작업에 집중할 수 있습니다. 리소스가 스택 간에 이동 중이고 해당 스택 중 하나가 명시적으로 포함되지 않은 경우 리팩터링 명령은 작업에 추가 스택을 자동으로 포함합니다.
스택 IDs 제공하지 않으면 앱의 모든 스택이 리팩터링 대상으로 간주됩니다.
유형: 문자열
필수 항목 여부: 아니요
옵션
모든 CDK CLI 명령에서 작동하는 글로벌 옵션 목록은 글로벌 옵션을 참조하세요.
-
--dry-run
-
콘솔에 매핑을 적용하지 않고 인쇄합니다.
이 옵션은 특히 복잡한 애플리케이션으로 작업할 때 실제로 리팩터링을 수행하기 전에 변경 사항을 검증하는 데 유용합니다. 리소스를 수정하지 않고 수행할 변경 사항을 정확히 보여줍니다.
-
--force
-
사용자에게 확인 메시지를 표시하지 않고 리팩터링을 진행합니다.
이는 변경 사항에 대해 확신할 수 있는 대화형 환경에서 유용합니다. CI/CD 파이프라인과 같은 비대화형 환경에서 CDK CLI는 프롬프트 없이 자동으로 진행되므로이 옵션은 필요하지 않습니다.
-
--help, -h <BOOLEAN>
-
cdk refactor
명령에 대한 명령 참조 정보를 표시합니다.
-
--override-file <FILE>
-
CDK CLI가 리소스에 대한 리팩터링 해상도를 결정할 수 없는 경우 재정의를 제공합니다. 이 파일에는 JSON 형식의 리소스 매핑이 포함되어 있습니다. 다음은 예제입니다.
{ "environments": [ { "account": "123456789012", "region": "us-east-2", "resources": { "StackA.OldName": "StackB.NewName", "StackC.Foo": "StackC.Bar" } } ] }
-
--revert <FILE>
-
이전 리팩터링을 되돌립니다. 리소스 매핑이 포함된 재정의 파일을 제공해야 합니다.
이렇게 해도 이전 리팩터링 작업이 완전히 실행 취소되지는 않습니다. 리팩터링을 완전히 되돌리려면 앱을 이전 상태로 롤백하고 리팩터링 프로세스를 다시 실행해야 합니다.