Terraformでdestroyするときに「BucketNotEmpty」が出たときの対処法
S3バケットに対してdestroy
したときに
BucketNotEmpty: The bucket you tried to delete is not empty
とか言われて怒られることが結構あるんですよね
対処(CLI)
メッセージの通りなんですが、
S3バケットの中身が空でない(NotEmpty)の状態でバケット自体削除できないわけです。
なので、CLIで消してしまうというのが一つの手
aws s3 rm s3://bucket-name --recursive
いちいち消すのが面倒くさい(tfでやりたいときは)ときは下記の通り
対処(Terraform)
resource "aws_s3_bucket" "default" {
bucket = "bucket-name"
}
resource "null_resource" "default" {
triggers = {
bucket = aws_s3_bucket.default.bucket
}
depends_on = [
aws_s3_bucket.default
]
provisioner "local-exec" {
when = destroy
command = "aws s3 rm s3://${self.triggers.bucket} --recursive"
}
}
解説
null_resourceブロックをつかって
depends_on
で依存関係を作る
↓
local-exec
のwhen=destroy
で実行するタイミングをdestroy
時だけに限定
↓
CLIでS3の中身を消す
いじょ!
Author And Source
この問題について(Terraformでdestroyするときに「BucketNotEmpty」が出たときの対処法), 我々は、より多くの情報をここで見つけました https://qiita.com/ChaseSan/items/11fe05926c700220d3cc著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .