Terraform変数ジェネレーター

ビジュアルフォームでTerraformの変数ブロックとterraform.tfvarsファイルを構築。複雑な型、バリデーションルール、一般的なテンプレートをサポート。

このツールについて

Terraform変数ジェネレーターは、HCLを手書きすることなく、適切に構造化された Terraform変数定義(variables.tf)と対応するterraform.tfvarsファイルを 作成するための無料ブラウザベースツールです。シンプルなフォームで各変数の名前、 型、説明、デフォルト値、バリデーションルール、sensitiveフラグを定義すると、 正しいTerraform構文が即座に生成されます。

ジェネレーターは一般的なTerraformの型をすべてサポートしています — stringnumberboollist(string)list(number)map(string)map(number)set(string)object({...})any。 複雑なオブジェクト型ではネストされたフィールド定義を指定できます。 カスタム条件とエラーメッセージ付きのバリデーションブロックがサポートされており、 有効なAWSリージョン、許可されたインスタンスタイプ、CIDRブロック形式などの 制約を強制できます。

すぐに始められるように、AWSリージョン、EC2インスタンスタイプ、VPC CIDR、 サブネットリスト、データベース認証情報、タグ、環境、プロジェクト名の一般的な 変数テンプレートが含まれています。テンプレートをクリックしてフォームに入力し、 必要に応じてカスタマイズしてください。Terraform HCLファイルを直接操作する場合、 HCL to JSON変換ツールがフォーマット間の変換に役立ちます。 インフラストラクチャに付随するYAMLベースの設定ファイルをフォーマットするには、 YAMLフォーマッターをお試しください。モジュールが 使用するJSON設定を検証するには、JSONフォーマッターが 常に便利です。

すべての処理はブラウザ内で完全に実行されます。sensitive変数の値を含め、 データがサーバーに送信されることはありません。

使い方

  1. クイックテンプレートボタン(「AWS Region」「Common Tags」など)をクリックして変数を事前入力するか、Add Variableをクリックしてゼロから始めます。
  2. Terraformの命名規則(小文字、アンダースコア)を使用して変数名を入力します。
  3. ドロップダウンからを選択 — string、number、bool、list、map、set、object、anyから選べます。
  4. 変数が制御する内容を説明する説明文を追加します。
  5. 有効なHCL構文でデフォルト値を設定します(例:"us-east-1"42["a", "b"])。
  6. 変数にシークレット(パスワード、APIキー)が含まれる場合はSensitiveを切り替えます。変数がnullを受け入れ可能な場合はNullableを切り替えます。
  7. 必要に応じてバリデーション条件とエラーメッセージを追加して制約を強制します。Terraform式構文を使用します(例:length(var.name) > 0)。
  8. 下の出力パネルで生成されたvariables.tfterraform.tfvarsを確認します。CopyまたはDownloadをクリックしてプロジェクトで使用します。

人気のTerraform変数の例

すべてのTerraform変数の例を見る →

よくある質問

どのTerraform型がサポートされていますか?

string、number、bool、list(string)、list(number)、map(string)、map(number)、set(string)、object({...})、anyをサポートしています。オブジェクト型では、Object Fieldsテキストエリアで{ name = string, age = number }のようなHCL構文を使用してネストされたフィールド定義を指定できます。

バリデーションルールはどのように機能しますか?

バリデーションルールは条件フィールドでTerraform式構文を使用します。条件がtrueに評価される必要があり、変数の値が受け入れられます。一般的なパターンには、length()チェック、許可された値のcontains()、パターンマッチングのcan(regex())、CIDRバリデーションのcan(cidrhost())があります。エラーメッセージはterraform planまたはapply時にバリデーションが失敗すると表示されます。

sensitive変数とは何ですか?

変数をsensitiveとしてマークすると、Terraformにプラン出力、ステート出力、ログからその値を削除するよう指示します。パスワード、APIキー、トークン、その他のシークレットに使用します。生成される変数ブロックにはsensitive = trueが含まれます。値はステートに保存されるため、ステートバックエンドも暗号化する必要があります。

モジュール用の変数を生成できますか?

はい。生成されるvariables.tf出力はルートモジュールと子モジュールの両方で機能します。子モジュールでは、呼び出し元のモジュールが値を提供する必要があるように、通常デフォルト値なしで変数を定義します。必須変数のDefault Valueフィールドを空のままにしてください。

デフォルト値はどのようにフォーマットすべきですか?

デフォルト値は有効なHCL構文を使用する必要があります。文字列にはクォートが必要:"us-east-1"。数値はそのまま:42。ブーリアンはtrueまたはfalse。リストはブラケットを使用:["a", "b"]。マップはブレースを使用:{ key1 = "value1", key2 = "value2" }。オブジェクトのデフォルトは型付きフィールドを持つマップと同じ構文に従います。

データは安全ですか?

はい。すべての処理はJavaScriptを使用してブラウザ内で完全に実行されます。変数名、デフォルト値、sensitiveフラグがサーバーに送信されることはありません。ツール使用中にブラウザの開発者ツールのネットワークタブで確認できます。

Terraform CloudやOpenTofuで使用できますか?

はい。生成されるHCL構文はTerraform 0.13以上、Terraform Cloud、Terraform Enterprise、OpenTofuと互換性があります。変数定義とtfvarsファイルは標準的なHashiCorp Configuration Language仕様に従っています。

関連ツール