基本的なHCLブロックをJSONに変換する
シンプルなHCLブロックと属性がどのようにJSONオブジェクトに変換されるかを学びます。文字列、数値、ブーリアン値と基本的なブロックからオブジェクトへのマッピングを解説します。
Basic Syntax
詳細な説明
HCLブロックからJSONオブジェクトへ
最も基本的な変換は、HCLブロックをJSONオブジェクトに変換することです。ブロック内の各属性はJSONオブジェクトのキーバリューペアになり、ブロックタイプとラベルがネスト構造を決定します。
HCLの例
resource "aws_instance" "web" {
ami = "ami-0c55b159cbfafe1f0"
instance_type = "t2.micro"
count = 3
monitoring = true
}
生成されるJSON
{
"resource": {
"aws_instance": {
"web": {
"ami": "ami-0c55b159cbfafe1f0",
"instance_type": "t2.micro",
"count": 3,
"monitoring": true
}
}
}
}
主要なマッピングルール
| HCL要素 | JSONの対応 |
|---|---|
| ブロックタイプ | トップレベルキー |
| ブロックラベル | ネストされたオブジェクトキー |
| 文字列属性 | JSON文字列 |
| 数値属性 | JSON数値 |
| ブーリアン属性 | JSONブーリアン |
null |
JSON null |
ブロックラベルのネスト
ラベル付きのHCLブロックはネストされたJSONオブジェクトを作成します。resource "type" "name"ブロックは3レベルのネストを生成します:ブロックタイプキー、リソースタイプキー、リソース名キー。これはTerraformのJSON設定構文でラベルがオブジェクトキーになるのと同じです。
型の保持
HCLの型システムはJSONにきれいにマッピングされます:文字列は文字列のまま、整数と浮動小数点はJSON数値になり、ブーリアンは直接マッピングされます。nullキーワードはJSON nullに変換されます。これによりプリミティブ型の変換はロスレスになります。
ユースケース
HCL設定ブロックとそのJSON等価物の基本的な関係を理解する必要がある場合。TerraformのJSON設定構文(.tf.jsonファイル)で作業を始める際や、プログラマティックにTerraform設定を生成するツールを構築する際に役立ちます。