メインコンテンツにスキップ

コマンド: console

tofu consoleコマンドは、を評価するためのインタラクティブなコンソールを提供します。

使用方法

使用方法: tofu console [オプション]

このコマンドは、を評価し、試すためのインタラクティブなコマンドラインコンソールを提供します。設定で使用する前に補間をテストしたり、ステートに現在保存されている値と対話したりするために使用できます。現在の状態が空であるか、まだ作成されていない場合は、コンソールを使用して式の構文と組み込み関数を試すことができます。コンソールは状態をロックするため、状態を変更する他のアクションを実行している間はコンソールを使用できません。

コンソールを閉じるには、exitコマンドを入力するか、Control-CまたはControl-Dを押します。

localバックエンドを使用する設定の場合のみ、tofu consoleはレガシーコマンドラインオプション-stateを受け入れます。

このコマンドは、tofu consoleの以下のオプションも受け入れます。

  • -var 'NAME=VALUE' - 設定のルートモジュールで宣言された単一の入力変数の値を設定します。複数の変数を設定するには、このオプションを複数回使用します。詳細については、コマンドラインの入力変数を参照してください。

  • -var-file=FILENAME - "tfvars"ファイルの定義を使用して、設定のルートモジュールで宣言された複数の入力変数の値を設定します。複数のファイルから値を含めるには、このオプションを複数回使用します。

-varオプションと-var-fileオプション以外にも、ルートモジュールに入力変数の値を設定する方法はいくつかあります。詳細については、ルートモジュール変数への値の代入を参照してください。

スクリプティング

tofu consoleコマンドは、改行で区切られたコマンドをパイプすることで、非インタラクティブなスクリプトで使用できます。先にエラーが発生しない限り、最後のコマンドからの出力のみが出力されます。

例えば

コードブロック
$ echo 'split(",", "foo,bar,baz")' | tofu console
tolist([
"foo",
"bar",
"baz",
])

リモートステート

現在のバックエンドでリモートステートが使用されている場合、OpenTofuは式を評価する前に、バックエンドから現在のワークスペースのステートを読み取ります。

tofu consoleコマンドは、現在の作業ディレクトリのOpenTofu設定と、設定されたバックエンドからOpenTofuステートファイルを読み込み、設定とステートファイルの両方の値に対して補間をテストできるようにします。

以下の`main.tf`を使用する場合

コードブロック
variable "apps" {
type = map(any)
default = {
"foo" = {
"region" = "us-east-1",
},
"bar" = {
"region" = "eu-west-1",
},
"baz" = {
"region" = "ap-south-1",
},
}
}

resource "random_pet" "example" {
for_each = var.apps
}

tofu consoleを実行すると、インタラクティブシェルに入り、以下の補間をテストできます。

マップから値を出力する

コードブロック
> var.apps.foo
{
"region" = "us-east-1"
}

特定の値に基づいてマップをフィルタリングする

コードブロック
> { for key, value in var.apps : key => value if value.region == "us-east-1" }
{
"foo" = {
"region" = "us-east-1"
}
}

適用するまで特定の値がわからない可能性があるかどうかを確認する

コードブロック
> random_pet.example
(known after apply)

さまざまな関数をテストする

コードブロック
> cidrnetmask("172.16.0.0/12")
"255.240.0.0"