結論
$ terraform apply -target=module.s3
- module追加しているときにはモジュールのインストールしないといけない(エラーメッセージでる)
$ terraform init
おまけ : S3の静的ホスティングのterraform
- main.tf
module "s3" { source = "./modules/s3" app_name = "app-name" }
- modules/s3.tf
resource "aws_s3_bucket" "bucket" { bucket = "${var.app_name}-app-s3-endpoint" acl = "public-read" website { index_document = "index.html" } } resource "aws_s3_bucket_policy" "source" { bucket = aws_s3_bucket.bucket.id policy = <<EOF { "Version": "2012-10-17", "Statement": [ { "Sid": "AddPerm", "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "${aws_s3_bucket.bucket.arn}/*", "Condition": {} } ] } EOF }
- /module/variables.tf
variable "app_name" {}
おまけ2 : s3へのコピー
- バケット一覧表示
$ aws s3 ls
- フォルダ内のファイル全部コピー
$ aws s3 cp build s3://<bucket-name>/ --recursive
- バケット内のファイル全部消す
$ aws s3 rm s3://<bucket-name>/ --recursive
- 最初は以下のコマンドでやった・・・(xargs)
$ ls | xargs -I{} aws s3 cp {} s3://<bucket-name>/
おまけ3 : S3の静的ホスティングについて
参考
東京リージョン
s3-website-ap-northeast-1.amazonaws.com
- バケット名が
hogehoge-sample
の場合