Команда: console
Команда tofu console предоставляет интерактивную консоль для вычисления выражений.
Команда tofu console не предназначена для использования в скриптах. Её можно использовать, но некоторые функции могут работать не так, как ожидается.
Использование
Использование: tofu console [options]
Эта команда предоставляет интерактивную консоль командной строки для вычисления выражений и экспериментов с ними. С её помощью можно тестировать интерполяции перед их использованием в конфигурациях, а также взаимодействовать со всеми значениями, сохранёнными в состоянии. Если текущее состояние пусто или ещё не создано, консоль можно использовать для экспериментов с синтаксисом выражений и встроенными функциями. Консоль блокирует состояние, поэтому во время выполнения других действий, изменяющих состояние, использовать консоль не получится.
Чтобы закрыть консоль, введите команду exit или нажмите Control-C либо Control-D.
Для конфигураций, использующих только бэкенд local, команда tofu console принимает устаревший параметр командной строки -state.
Использование переменных в источниках модулей, конфигурации бэкенда или блоке шифрования требует назначения значений переменным корневого модуля при запуске tofu console.
Для команды tofu console также доступны следующие параметры:
-
-var 'NAME=VALUE'— задаёт значение для одной входной переменной, объявленной в корневом модуле конфигурации. Чтобы задать несколько переменных, используйте этот параметр несколько раз. Дополнительную информацию см. в разделе Входные переменные в командной строке. -
-var-file=FILENAME— задаёт значения для нескольких входных переменных, объявленных в корневом модуле конфигурации, используя определения из файла «tfvars». Чтобы включить значения из нескольких файлов, используйте этот параметр несколько раз. -
-json-into=out.json— позволяет одновременно записывать удобные для чтения человеком и машиночитаемые журналы с результатами вычисления заданных выражений.
Помимо параметров -var и -var-file, есть несколько других способов задать значения входных переменных корневого модуля. Дополнительную информацию см. в разделе Назначение значений переменным корневого модуля.
Удалённое состояние
Если текущий бэкенд использует удалённое состояние, 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"
Copyright (c) The OpenTofu Authors
Copyright (c) 2014 HashiCorp, Inc.
Mozilla Public License, version 2.0
https://opentofu.org/docs/v1.12/cli/commands/console/