TerraformでS3バケットを作成しようとしてWarningが出ました【解決法】

TerraformでS3バケットを作成しようとしてplanを実行したときに、以下のWarningが出ました。

 

Warning: Argument is deprecated

 

解決方法を紹介します。

 

 

TerraformでのS3の記述を修正してみる

■Warningが出たTerraform記述

わたしが書いたS3バケット作成のためのTerraformの記述は以下の通りです。

 

resource "aws_s3_bucket" "s3_deploy_bucket" {
  bucket = "${var.project}-${var.environment}-deploy-bucket-${random_string.s3_unique_key.result}"

  versioning {
    enabled = false
  }
}

 

 

■警告文

上記の記述でplanを実行すると、以下の警告文が出ました。

 

│ Warning: Argument is deprecated
│
│   with aws_s3_bucket.s3_deploy_bucket,
│   on s3.tf line 12, in resource "aws_s3_bucket" "s3_deploy_bucket":
│   12: resource "aws_s3_bucket" "s3_deploy_bucket" {
│
│ Use the aws_s3_bucket_versioning resource instead
│
│ (and one more similar warning elsewhere)

 

 

"引数が非推奨"と書かれていますね。

 

Terraformの公式ドキュメントを確認すると、"versioning"は非推奨で、現在は"aws_s3_bucket_versioning"が使われているようです。

 

 

●aws_s3_bucket非推奨引数リスト

リソースaws_s3_bucketで参照される引数には他にも非推奨になっている引数が多数あり、将来のメジャーバージョンでは削除される予定とのことです。

 

以下に非推奨のオプションと代替オプションをリスト化しました。

 

 

非推奨 代替引数
acceleration_status aws_s3_bucket_accelerate_configuration
acl aws_s3_bucket_acl
grant aws_s3_bucket_acl
cors_rule aws_s3_bucket_cors_configuration
lifecycle_rule aws_s3_bucket_lifecycle_configuration
logging aws_s3_bucket_logging
object_lock_configuration aws_s3_bucket_object_lock_configuration
policy aws_s3_bucket_policy
replication_configuration aws_s3_bucket_replication_configuration
request_payer aws_s3_bucket_request_payment_configuration
server_side_encryption_configuration aws_s3_bucket_server_side_encryption_configuration
versioning aws_s3_bucket_versioning
website aws_s3_bucket_website_configuration

 

 

■Terraformリソース修正

S3バケット作成のためのTerraformの記述を修正します。

 

resource "aws_s3_bucket" "s3_deploy_bucket" {
  bucket = "${var.project}-${var.environment}-deploy-bucket-${random_string.s3_unique_key.result}"
}

resource "aws_s3_bucket_versioning" "s3_deploy_bucket_versioning" {
  bucket = aws_s3_bucket.s3_deploy_bucket.id

  versioning_configuration {
    status = "Disabled"
  }
}

 

 

まとめ:TerraformでS3バケットを作成しようとしてWarningが出ました【解決法】

Terraformのerror,worningの解決法をどんどん共有していきます。

 

Terraformを利用してAWSクラウド環境構築を始めたい方はこちらから

 

 

参考リンク:Terraform公式webサイト
 

 

↓ほかの協栄情報メンバーも自動化に関する記事を公開しています。ぜひ参考にしてみてください。

 

■Terraformの概要と使用方法(higa)
https://cloud5.jp/terraform_summary/

 

■AWS CodePipeline を利用してS3の静的ウェブサイトの更新を自動化する(tatsuoka)
https://cloud5.jp/tatsuoka-handson-beginner-codepipeline/

 

■AWS上にopenstackを構築(liuwanying)
https://cloud5.jp/openstack-install/

 

■Ansibleを利用してwindowsOSのインスタンスを操作する方法(umemoto)
https://cloud5.jp/control-windows-fromansible/

 

 

Last modified: 2023-07-15

Author