Spec-Zone.ru › OpenTofu 1.11

Команда: output

Команда tofu output используется для извлечения значения выходной переменной из файла состояния.

Использование​

Использование: tofu output [options] [NAME]

Если дополнительные аргументы не указаны, output отобразит все выходные значения корневого модуля. Если указано выходное значение NAME, будет выведено только его значение.

Примечание

Использование переменных в конфигурации бэкенда или блоке шифрования требует задания значений переменных корневого модуля при запуске tofu output.

Все флаги командной строки необязательны. Доступны следующие флаги:

  • -json — если указан, выходные значения форматируются как объект JSON с отдельным ключом для каждого значения. Если указан NAME, будет возвращено только заданное выходное значение. Результат можно передать таким инструментам, как jq, для дальнейшей обработки.

  • -raw — если указан, OpenTofu преобразует заданное выходное значение в строку и напрямую выведет её без специального форматирования. Это может быть удобно при работе со скриптами оболочки, но поддерживаются только значения типов string, number и boolean. Для обработки сложных типов данных используйте вместо этого -json.

  • -no-color — если указан, вывод не будет содержать цвет.

  • -state=path — путь к файлу состояния. По умолчанию используется "terraform.tfstate". Игнорируется при использовании удалённого состояния.

  • -var 'NAME=VALUE' — задаёт значение одной входной переменной, объявленной в корневом модуле конфигурации. Используйте этот параметр несколько раз, чтобы задать значения нескольких переменных. Подробнее см. в разделе Входные переменные в командной строке.

  • -var-file=FILENAME — задаёт значения для нескольких входных переменных, объявленных в корневом модуле конфигурации, используя определения из файла "tfvars". Используйте этот параметр несколько раз, чтобы включить значения из нескольких файлов.

  • -show-sensitive — если указан, будут отображены конфиденциальные значения.

Помимо параметров -var и -var-file, значения входных переменных корневого модуля можно задать несколькими другими способами. Подробнее см. в разделе Задание значений переменных корневого модуля.

Примечание

При использовании флага командной строки -json или -raw все конфиденциальные значения в состоянии OpenTofu будут отображаться в виде обычного текста. Дополнительные сведения см. в разделе Конфиденциальные данные в состоянии.

Примеры​

В этих примерах предполагается следующий фрагмент выходных данных OpenTofu.

Блок кода
output "instance_ips" {
  value = aws_instance.web.*.public_ip
}

output "lb_address" {
  value = aws_alb.web.public_dns
}

output "password" {
  sensitive = true
  value = var.secret_password
}

Чтобы вывести список всех выходных значений:

Блок кода
$ tofu output
instance_ips = [
  "54.43.114.12",
  "52.122.13.4",
  "52.4.116.53"
]
lb_address = "my-app-alb-1657023003.us-east-1.elb.amazonaws.com"
password = <sensitive>

Обратите внимание: выходные значения с атрибутом sensitive будут скрыты:

Блок кода
$ tofu output password
password = <sensitive>

Чтобы получить DNS-адрес балансировщика нагрузки:

Блок кода
$ tofu output lb_address
"my-app-alb-1657023003.us-east-1.elb.amazonaws.com"

Чтобы получить IP-адреса всех экземпляров:

Блок кода
$ tofu output instance_ips
instance_ips = [
  "54.43.114.12",
  "52.122.13.4",
  "52.4.116.53"
]

Использование в автоматизации​

По умолчанию команда tofu output выводит данные в удобном для чтения формате, который может изменяться со временем для повышения ясности.

Для скриптов и автоматизации используйте -json, чтобы получить стабильный формат JSON. Вы можете обработать вывод с помощью анализатора JSON для командной строки, например jq:

Блок кода
$ tofu output -json instance_ips | jq -r '.[0]'
54.43.114.12

В распространённом случае, когда строковое значение нужно напрямую использовать в скрипте оболочки, можно вместо этого применить -raw, который выведет строку напрямую, без дополнительного экранирования или пробельных символов.

Блок кода
$ tofu output -raw lb_address
my-app-alb-1657023003.us-east-1.elb.amazonaws.com

Параметр -raw работает только со значениями, которые OpenTofu может автоматически преобразовать в строки. Для работы со значениями сложных типов, например объектами, используйте вместо него -json, при необходимости в сочетании с jq.

Строки OpenTofu представляют собой последовательности символов Unicode, а не необработанные байты, поэтому вывод -raw будет закодирован в UTF-8, если содержит символы, не входящие в ASCII. Если требуется другая кодировка символов, используйте отдельную команду, например iconv, чтобы преобразовать необработанный вывод OpenTofu.

Copyright (c) The OpenTofu Authors
Copyright (c) 2014 HashiCorp, Inc.
Mozilla Public License, version 2.0
https://opentofu.org/docs/v1.11/cli/commands/output/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API