コマンド: console
tofu console
コマンドは、式を評価するためのインタラクティブなコンソールを提供します。
使用方法
使用方法: tofu console [オプション]
このコマンドは、式を評価し、試すためのインタラクティブなコマンドラインコンソールを提供します。設定で使用する前に補間をテストしたり、ステートに現在保存されている値と対話したりするために使用できます。現在の状態が空であるか、まだ作成されていない場合は、コンソールを使用して式の構文と組み込み関数を試すことができます。コンソールは状態をロックするため、状態を変更する他のアクションを実行している間はコンソールを使用できません。
コンソールを閉じるには、exit
コマンドを入力するか、Control-CまたはControl-Dを押します。
local
バックエンドを使用する設定の場合のみ、tofu console
はレガシーコマンドラインオプション-state
を受け入れます。
モジュールソース、バックエンド設定、または暗号化ブロックで変数を使用するには、tofu console
を実行するときにルートモジュール変数に値を代入する必要があります。
このコマンドは、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"