Lambda
함수를 Redshift
에 접근할 수 있게 하기 위해서는 Redshift
클라스터가 있는 VPC
정보를 CDK stack
에 명시해 주어야 한다.
그래서 아래 코드를 쓰기 위해
const vpcExample = ec2.Vpc.fromVpcAttributes(this, "vpcExample", {
vpcId: "[vpc_id]",
availabilityZones: ["[region]"],
privateSubnetIds: [
"[subnet_name]",
"[subnet_name]"
]
});
@aws-cdk/aws-ec2
를 새로 설치했더니 그 다음부터 Argument of type 'this' is not assignable to parameter of type 'Construct'
라면서 에러를 뿜어냈다..
해결방법1: @aws-cdk의 모든 라이브러리의 version을 통일시킨다
현재 작업하고 있는 폴더 직하에 있는 package.json
을 열어보면 아래와 같이 버전을 확인할 수 있다.
"dependencies": {
"@aws-cdk/aws-ec2": "^1.32.1",
"@aws-cdk/aws-events": "^1.32.1",
"@aws-cdk/aws-events-targets": "^1.32.1",
"@aws-cdk/aws-lambda": "^1.32.1",
"@aws-cdk/core": "1.32.0",
"source-map-support": "^0.5.16"
}
@aws-cdk/
로 시작하는 라이브러리는 버전을 똑같이 맞춰 주어야 한다.
위의 상태에서는 @aws-cdk/core
만 버전이 낮은 것을 알 수 있다.
업데이트 해주자.
$ npm update @aws-cdk/core
하지만 업데이트가 되지 않는다.
찾아보니 npm
라이브러리 전체를 최신 버전으로 일괄 업데이트 가능한 라이브러리가 있었다.
$ npm install -g npm-check-updates
$ ncu -u
package.json
을 확인해보니 이제야 모두 최신 버전이 되었다.
"dependencies": {
"@aws-cdk/aws-ec2": "^1.32.1",
"@aws-cdk/aws-events": "^1.32.1",
"@aws-cdk/aws-events-targets": "^1.32.1",
"@aws-cdk/aws-lambda": "^1.32.1",
"@aws-cdk/core": "1.32.1",
"source-map-support": "^0.5.16"
}
해결방법2: node_module을 삭제하고 새로 npm install 하자
그래도 여전히 this
에 빨간 줄이 딱 그어져 있다면
$ rm -rf node_modules
$ npm install
내가 참고한 AWS CDK の Argument of type 'this' is not assignable to parameter of type 'Construct'. エラーの対応方法에는 npm run install
하라고 되어 있지만 이 command 자체가 에러를 내면서 안 먹혔기 때문에 npm install
로 바꿔서 실행했다.
이제야 해결되었다.
'AWS 노트' 카테고리의 다른 글
AWS CDK가 Argument of type 'Function' is not assignable to parameter of type 'IFunction'. 에러를 뿜을 때 (0) | 2020.04.17 |
---|---|
DataWarehouse와 DateLake의 차이 (0) | 2020.04.15 |
AWS 특정 IAM 역할로 S3 버킷에 대한 접근을 제한하기 (적당히 해석) (0) | 2020.04.10 |
Lambda 함수 실행기 (4) AWS Cloud Watch 이용해서 주기적으로 Lambda 함수 실행시키는 CDK Stack 구축하기 (0) | 2020.04.09 |
로컬에서 AWS CDK Stack 빌드해서 Lambda 함수 실행시키기 (0) | 2020.04.08 |