AWS CDKでS3バケットをデプロイする方法
項目 | バージョン |
---|---|
CDK | 2.28.0 |
AWS CDKでS3バケットをデプロイします。
import { Stack, StackProps, aws_s3 } from 'aws-cdk-lib'; import { Construct } from 'constructs'; export class Sample001Stack extends Stack { constructor(scope: Construct, id: string, props?: StackProps) { super(scope, id, props); const bucket = new aws_s3.Bucket(this, 'TestBucket', {bucketName: 'test-bucketxxx'}); } }
これでデプロイします。
cdk deploy
S3バケットが作成されます。
cdk destroy
destroyすると、スタックは削除されますが、S3バケットが残ってしまいます。
以下オプションを追加する必要があります。
removalPolicy: RemovalPolicy.DESTROY
以下tsに1行追加します。
import { Stack, StackProps, aws_s3 } from 'aws-cdk-lib'; import { Construct } from 'constructs'; export class Sample001Stack extends Stack { constructor(scope: Construct, id: string, props?: StackProps) { super(scope, id, props); const bucket = new aws_s3.Bucket(this, 'TestBucket', { bucketName: 'test-bucketxxx', removalPolicy: RemovalPolicy.DESTROY // 1行追加 }); } }
このtsでデプロイしたS3バケットはcdk destroy
で削除されます。
TestBucket (TestBucket000B00BC) The bucket you tried to delete is not empty
バケット内にオブジェクトが存在する場合は、一旦空にしてからバケット削除する必要があります。
cdk destroy
時に空にするには、以下オプションを指定します。
autoDeleteObjects: true
以下tsに1行追加します。
import { Stack, StackProps, aws_s3 } from 'aws-cdk-lib'; import { Construct } from 'constructs'; export class Sample001Stack extends Stack { constructor(scope: Construct, id: string, props?: StackProps) { super(scope, id, props); const bucket = new aws_s3.Bucket(this, 'TestBucket', { bucketName: 'test-bucketxxx', removalPolicy: RemovalPolicy.DESTROY, autoDeleteObjects: true // 1行追加 }); } }
これでcdk destroy
で、S3バケットに何かオブジェクトが存在していても、S3バケットが削除されるようになります。
参考サイト
aws-cdk-lib.aws_s3 module · AWS CDK
Language | Package
interface LifecycleRule · AWS CDK
# interface LifecycleRule


KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^
資格:少額短期保険募集人,FP3級
コメント