terraform fmtコマンドでtfファイルをフォーマットしてterraform validateで妥当か確認する

terraform fmtコマンドでtfファイルをフォーマットしてterraform validateで妥当か確認する

terraform fmt

terraform fmtコマンドを実行したカレントディレクトリの設定ファイルのみをフォーマットしてくれます。サブディレクトリも含めたい場合はterraform fmt -recursiveコマンドでフォーマット対象となります。

main.tf

terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 4.16"
    }
  }

  required_version = ">= 1.2.0"
}

provider "aws" {
  region = "us-west-2"
}

resource "aws_instance" "app_server" {
  ami           = "ami-830c94e3"
  instance_type = "t2.micro"

  tags = {
    Name = "ExampleAppServerInstance"
  }
  } ★

terraform fmtコマンドを実行します。修正したファイルがあればファイル名が標準出力されます。

$ terraform fmt
main.tf

勝手にフォーマット修正してくれます。プロジェクトルートのtfファイルだけフォーマットするので、再帰的にフォーマットしたい場合は-recursiveをつけます。

$ terraform fmt -recursive

main.tf

terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 4.16"
    }
  }

  required_version = ">= 1.2.0"
}

provider "aws" {
  region = "us-west-2"
}

resource "aws_instance" "app_server" {
  ami           = "ami-830c94e3"
  instance_type = "t2.micro"

  tags = {
    Name = "ExampleAppServerInstance"
  }
} ★修正されている

terraform validate

terraform validateコマンドで設定ファイルが妥当かどうか確認することができます。

main.tf

terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 4.16"
    }
  }

  required_version = ">= 1.2.0"
}

provider "aws" {
  region = "us-west-2"
}

resource "aws_instance" "app_server" {
  ami           = "ami-830c94e3"
  instance_type = "t2.micro"

  tags = {
    Name =  ★ Name未指定
  }
}

terraform validateコマンドを実行します。

$ terraform validate
╷
│ Error: Invalid expression
│
│ on main.tf line 21, in resource "aws_instance" "app_server":
│ 21: Name =
│ 22: }
│
│ Expected the start of an expression, but found an invalid expression token.
╵

妥当でない場合、エラーが出力されます。main.tfのNameを指定します。

main.tf

terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 4.16"
    }
  }

  required_version = ">= 1.2.0"
}

provider "aws" {
  region = "us-west-2"
}

resource "aws_instance" "app_server" {
  ami           = "ami-830c94e3"
  instance_type = "t2.micro"

  tags = {
    Name = "ExampleAppServerInstance" ★Name指定
  }
}

terraform validateコマンドを実行します。

$ terraform validate
Success! The configuration is valid.

成功メッセージが返ればOKです。

コメント

株式会社CONFRAGE ITソリューション事業部をもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む

タイトルとURLをコピーしました