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セットアップのためのバックエンド設定の生成。

試してみる — HCL ↔ JSON Converter

フルツールを開く