概要
TerraformでS3バケットを作成するために以下の内容でterraform planを実行したところ、
Warning: Argument is deprecated
Use the aws_s3_bucket_cors_configuration resource instead
という警告が表示された。
resource "aws_s3_bucket" "public_bucket" {
bucket = "hogehoge-hogehoge12349876"
acl = "public-read"
cors_rule {
allowed_origins = ["*"]
allowed_methods = ["GET"]
allowed_headers = ["*"]
max_age_seconds = 3000
}
}
原因
古いバージョンのTerraformに存在したaws_s3_bucketリソースの引数の多くは、新しいバージョンのTerraformでは別のリソースとして定義する必要がある。
上記の例の場合、aclはaws_s3_bucket_aclリソース、cors_ruleはaws_s3_bucket_cors_configurationリソースとして以下のように定義する。
resource "aws_s3_bucket" "public_bucket" {
bucket = "hogehoge-hogehoge12349876"
}
resource "aws_s3_bucket_acl" "public_bucket_acl" {
bucket = aws_s3_bucket.public_bucket.id
acl = "public-read"
}
resource "aws_s3_bucket_cors_configuration" "public_bucket__cors_configuration" {
bucket = aws_s3_bucket.public_bucket.id
cors_rule {
allowed_origins = ["*"]
allowed_methods = ["GET"]
allowed_headers = ["*"]
max_age_seconds = 3000
}
}