小ネタです. TerraformでS3のbucketを作るとき, ついでに何かしらのファイルを設置したいというシーンがあるでしょう. そういうときは...
resource "aws_s3_bucket" "sample" { bucket = "sample-bucket" acl = "private" } resource "aws_s3_bucket_object" "for_monitoring" { bucket = "sample-bucket" key = "file" source = "/path/to/file" }
こういう感じで, aws_s3_bucket
でbucketを作った後, そのbucketに aws_s3_bucket_object
をしてあげると良いです. この場合, /path/to/file
に設置されたファイルが, bucket(sample-bucket
)にfile
という名前で設置されます.
また, source
ではいわば「ファイルのアップロード」的な挙動になりますが, 「ファイルを用意したくない(ファイルの中身を.tfの中で設定したい)」という場合は, 次のように content
を使うと良いです.
resource "aws_s3_bucket_object" "for_monitoring" { bucket = "sample-bucket" key = "file" content = "hello, s3!" }
こうすれば, bucket(sample-bucket
)に, file
という名前で, 中身がhello, s3!
となったファイルが設置されます.