new s3.Bucket
使用としたらthis
がエラー(TS2345)になった。
cdk-stack.ts
import * as cdk from '@aws-cdk/core';
import * as s3 from '@aws-cdk/aws-s3';
export class CdkStack extends cdk.Stack {
constructor(scope: cdk.Construct, id: string, props?: cdk.StackProps) {
super(scope, id, props);
// this ok
const serviceName: string = this.node.tryGetContext("serviceName");
// this error
const originBucket = new s3.Bucket(this, `${serviceName}BucketId`, {
bucketName: `${serviceName}-bucket`
});
};
}
解決策
package.json内でaws-cdkのバージョンが混合していると発生するエラーらしいのでバージョンを揃える
package.json
"devDependencies": {
"@aws-cdk/core": "^1.11.0",
"@aws-cdk/aws-s3": "^1.12.0",
"aws-cdk": "^1.11.0",
"@types/node": "^12.7.11"
}
↓
package.json
"devDependencies": {
"@aws-cdk/core": "^1.12.0",
"@aws-cdk/aws-s3": "^1.12.0",
"aws-cdk": "^1.12.0",
"@types/node": "^12.7.11"
}
参考