Terraform出力値をJSONに変換する
説明、sensitiveフラグ、値式を含むモジュール値を公開するTerraform出力ブロックを変換します。
Variables & Outputs
詳細な説明
HCLとJSONでのTerraform出力
出力値はTerraformモジュールの戻り値です。親モジュールまたはterraform apply後のCLIに計算値を公開します。
HCL出力定義
output "vpc_id" {
description = "作成されたVPCのID"
value = "aws_vpc.main.id"
}
output "public_subnet_ids" {
description = "パブリックサブネットのID"
value = ["aws_subnet.public.*.id"]
}
output "database_endpoint" {
description = "RDSデータベース接続エンドポイント"
value = "aws_db_instance.main.endpoint"
sensitive = true
}
output "load_balancer_dns" {
description = "アプリケーションロードバランサーのDNS名"
value = "aws_lb.main.dns_name"
}
JSON構造
{
"output": {
"vpc_id": {
"description": "作成されたVPCのID",
"value": "aws_vpc.main.id"
},
"database_endpoint": {
"description": "RDSデータベース接続エンドポイント",
"value": "aws_db_instance.main.endpoint",
"sensitive": true
}
}
}
Sensitive出力
sensitive = trueフラグはTerraformがCLI出力に値を表示することを防ぎます。JSONでは単純なブーリアン属性です。
値式
出力のvalue属性は通常、他のリソースへの参照を含みます。JSONではHCL式の文字列表現になります。Terraformはプラン/適用時にこれらを評価します。
依存関係
出力は暗黙の依存関係を作成します。Terraformは出力値を計算する前に参照されるリソースが作成されることを保証します。この依存関係グラフはHCLまたはJSON形式に関係なく維持されます。
ユースケース
他のモジュールや外部システムで消費するためにTerraformモジュールからインフラ詳細を公開する場合。モジュールレジストリの構築、ドキュメント生成、設定管理ツールとの統合時にJSON変換が有用です。