Spec-Zone.ru › OpenTofu 1.9

Команда: output

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

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

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

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

Примечание

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

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

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

  • -raw — если указан, OpenTofu преобразует указанное выходное значение в строку и выводит ее напрямую, без специального форматирования. Это удобно при работе со сценариями оболочки, но поддерживаются только строковые, числовые и логические значения. Для обработки сложных типов данных используйте вместо него -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.9/cli/commands/output/

Spec-Zone.ru

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