AWS CDK 스택을 CDKv1에서 v2로 업그레이드하는 방법

3158 단어

배경



2023년 6월 1일에 AWS CDK 버전 1의 지원이 종료됩니다. AWS CDK Maintenance Policy

옛날 방식



CDKv1에서는 requirements.txt 파일을 통해 CDK 앱 패키지를 정의했습니다.

aws-cdk.core=={cdk_version1}",
aws-cdk.aws_codebuild=={cdk_version1}",
aws-cdk.aws_cloudtrail=={cdk_version1}",
aws-cdk.aws_codepipeline=={cdk_version1}",
aws-cdk.aws_codepipeline_actions=={cdk_version1}",
aws-cdk.aws_events=={cdk_version1}",
aws-cdk.aws_events_targets=={cdk_version1}",
aws-cdk.aws_iam=={cdk_version1}",
aws-cdk.aws_lambda_event_sources=={cdk_version1}",
aws-cdk.aws_lambda=={cdk_version1}",
aws-cdk.aws_s3=={cdk_version1}",
aws-cdk.aws_kms=={cdk_version1}
aws-cdk.aws-ec2==cdk_version1
aws-cdk.aws-elasticloadbalancingv2==cdk_version1
aws-cdk.aws-lambda==cdk_version1

boto3
pytest
-e .


패키지 관리자에 의해 잠재적으로 차단될 수 있으며 aws-cdk 패키지 이름에 압도될 수 있습니다.

CDK 버전 2



이제 CDK와 모든 안정적인 구성이 하나의 패키지/모듈로 결합됩니다. 실험용 모듈은 여전히 ​​하나씩 설치해야 합니다.

aws-cdk-lib를 사용하면 작업이 훨씬 쉬워집니다.

준비



대부분의 CDK 앱이 Python으로 작성되었기 때문에 변경을 더 쉽게 하기 위해 CDKv1에서 격리된 가상 환경을 만들 것입니다.
python3 -m venv .cdkv2
새 가상 환경을 활성화하고 pip install을 실행하여 cdk v2 lib를 설치합니다.
source .cdkv2/bin/activate
참고: 모든 이전 aws-cdk v1 패키지를 다른 txt 파일(예: requirements-dev.txt)로 이동합니다.


requirements.txt는 CDK 버전에 따라 아래와 유사합니다. cdk --version을 사용하여 확인하십시오.

aws-cdk-lib==2.15.0
constructs>=10.0.0,<11.0.0


cdk.json도 조정해야 합니다. CDK v1의 일부 옵션은 이제 더 이상 사용되지 않으며 cdk.json 파일의 많은 부분도 단순화됩니다.

전체적으로 보면 아래와 같습니다.

{
  "app": "python app.py",
  "context": {
    "@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-lib에 있습니다. 대부분의 cdk 앱은 import 문만 변경하면 됩니다.

내가 가진 예 -

from aws_cdk import core
from aws_cdk.core import Tags
import aws_cdk.aws_iam as iam
import aws_cdk.aws_lambda as _lambda 


로 변경

from constructs import Construct

from aws_cdk import (
    aws_iam as iam,
    aws_lambda as _lambda,
    Stack,
    CfnOutput,
    Tags
)


이제 간단히 실행하여 환경을 계정으로 재부팅하십시오.

cdk bootrap


나는 오류가 없어서 다른 사람들이 cdk bootrap 버전 충돌에 문제가 있는 것을 보았습니다.

좋은 웹페이지 즐겨찾기