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ではstring、number、bool、list(string)、map(string)のような型制約は式です。JSONでは文字列として表現されます。object({name = string, age = number})のような複雑な型も文字列表現になります。
バリデーションルール
conditionとerror_message属性を持つ変数バリデーションブロックはネストされたオブジェクトに変換されます。条件式はJSONでは文字列になります。
ユースケース
明確に定義された入力を持つ再利用可能なTerraformモジュールの作成、API仕様からの変数定義ファイルの生成、Terraform Cloudワークスペース変数設定のためのHCLとJSON形式間の変換。