Terraform変数定義をJSONに変換する

型、デフォルト値、説明、バリデーションルールを含むTerraform変数ブロックをHCLからJSON形式に変換します。

Variables & Outputs

詳細な説明

HCLとJSONでのTerraform変数

変数はTerraformモジュールの入力パラメーターです。各variableブロックは、オプションの型、デフォルト値、説明、バリデーションルールを持つ単一の入力を定義します。

HCL変数定義

variable "region" {
  description = "リソースデプロイ用のAWSリージョン"
  type        = "string"
  default     = "us-east-1"
}

variable "instance_count" {
  description = "起動するインスタンス数"
  type        = "number"
  default     = 2
}

variable "enable_logging" {
  description = "CloudWatchロギングの有効化"
  type        = "bool"
  default     = true
}

variable "allowed_cidrs" {
  description = "サービスへのアクセスを許可するCIDRブロック"
  type        = "list(string)"
  default     = ["10.0.0.0/8", "172.16.0.0/12"]
}

JSON構造

各変数名はvariableオブジェクトの下のキーになります:

{
  "variable": {
    "region": {
      "description": "リソースデプロイ用のAWSリージョン",
      "type": "string",
      "default": "us-east-1"
    },
    "instance_count": {
      "description": "起動するインスタンス数",
      "type": "number",
      "default": 2
    }
  }
}

型式

HCLではstringnumberboollist(string)map(string)のような型制約は式です。JSONでは文字列として表現されます。object({name = string, age = number})のような複雑な型も文字列表現になります。

バリデーションルール

conditionerror_message属性を持つ変数バリデーションブロックはネストされたオブジェクトに変換されます。条件式はJSONでは文字列になります。

ユースケース

明確に定義された入力を持つ再利用可能なTerraformモジュールの作成、API仕様からの変数定義ファイルの生成、Terraform Cloudワークスペース変数設定のためのHCLとJSON形式間の変換。

試してみる — HCL ↔ JSON Converter

フルツールを開く