Terraformバックエンド設定をJSONに変換する
S3、GCS、Azure Blob、ConsulバックエンドなどのTerraformバックエンドブロックをHCLからJSON形式に変換します。
Advanced
詳細な説明
Terraformバックエンド設定
バックエンドブロックはTerraformがステートファイルを保存する場所を設定します。バックエンドはterraformブロック内で指定され、さまざまなストレージプロバイダーをサポートします。
S3バックエンド(AWS)
terraform {
backend "s3" {
bucket = "my-terraform-state"
key = "production/terraform.tfstate"
region = "us-east-1"
dynamodb_table = "terraform-locks"
encrypt = true
}
}
JSONでの等価形式
{
"terraform": {
"backend": {
"s3": {
"bucket": "my-terraform-state",
"key": "production/terraform.tfstate",
"region": "us-east-1",
"dynamodb_table": "terraform-locks",
"encrypt": true
}
}
}
}
GCSバックエンド(Google Cloud)
terraform {
backend "gcs" {
bucket = "my-terraform-state"
prefix = "production"
}
}
Azureバックエンド
terraform {
backend "azurerm" {
resource_group_name = "terraform-state-rg"
storage_account_name = "tfstateaccount"
container_name = "tfstate"
key = "production.terraform.tfstate"
}
}
バックエンドのネスト
バックエンドブロックはterraform内にネストされ、バックエンドタイプ(s3、gcs、azurerm)はラベルとして追加のJSONネストレベルを生成します:terraform.backend.s3.{属性}。
ステートロック
DynamoDB(AWS)、ネイティブロック(GCS)、blobリース(Azure)がステートロックを提供します。これらはバックエンド属性として設定され、単純なJSONキーバリューペアに変換されます。
ユースケース
チームベースのTerraformワークフローのためのリモートステートストレージの設定、プロバイダー間のバックエンド移行、マルチ環境Terraformセットアップのためのバックエンド設定の生成。