[aws] CDKでS3のバケットを削除時にBucketNotEmptyエラーが出る時

カテゴリ: aws | タグ:

awsのcdkを使ってS3のバケットを作成した時、cdk destroyコマンドでリソースを削除すると下記のエラーが出ることがあります。

$ cdk destory

The bucket you tried to delete is not empty 
  (Service: Amazon S3; Status Code: 409; 
   Error Code: BucketNotEmpty; 
   Request ID: xxx; S3 Extended Request ID: xxx; 
   Proxy: null)

これは削除しようとしたS3バケットが空では無いためです。

このエラーを回避するには以下のように、removalPolicyautoDeleteObjectsを指定すればよいです。

destoryしたときに、バケットを保持したい場合

import * as cdk from '@aws-cdk/core';
import * as s3 from '@aws-cdk/aws-s3';

export class AwsCdkStack extends cdk.Stack {

    const websiteBacket = new s3.Bucket(this, 'MyWebsiteBucket', {
        bucketName: 'my-backet-name',
        websiteErrorDocument: 'index.html',
        websiteIndexDocument: 'index.html',
        removalPolicy: cdk.RemovalPolicy.RETAIN,
    });
}

destoryしたときに、バケットの中にあるオブジェクトを含めて削除したい場合

import * as cdk from '@aws-cdk/core';
import * as s3 from '@aws-cdk/aws-s3';

export class AwsCdkStack extends cdk.Stack {

    const websiteBacket = new s3.Bucket(this, 'MyWebsiteBucket', {
        bucketName: 'my-backet-name',
        websiteErrorDocument: 'index.html',
        websiteIndexDocument: 'index.html',
        removalPolicy: cdk.RemovalPolicy.DESTROY,
        autoDeleteObjects: true,
    });
}

Amazonでおトクに買い物する方法
AmazonチャージでポイントGET


Amazonは買いもの前にAmazonギフト券をチャージしてポイントをゲットしないと損!

こちらもおススメ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です