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変換が有用です。

試してみる — HCL ↔ JSON Converter

フルツールを開く