Spec-Zone.ru › OpenTofu 1.11

yamlencode Функция

yamlencode кодирует заданное значение в строку, используя блочный синтаксис YAML 1.2.

Эта функция сопоставляет значения языка OpenTofu с тегами YAML следующим образом:

Тип OpenTofu Тип YAML
string !!str
number !!float или !!int
bool !!bool
list(...) !!seq
set(...) !!seq
tuple(...) !!seq
map(...) !!map
object(...) !!map
Значение Null !!null

yamlencode использует неявный синтаксис для всех перечисленных выше типов, поэтому не создает явные теги YAML.

Поскольку формат YAML не может полностью представить все типы языка OpenTofu, передача результата yamlencode в yamldecode не приведет к получению идентичного значения. Однако правила автоматического преобразования типов языка OpenTofu означают, что на практике это редко становится проблемой.

YAML является надмножеством JSON, поэтому, если это возможно, мы рекомендуем вместо этого создавать JSON с помощью jsonencode, даже если удаленная система поддерживает YAML. Синтаксис JSON эквивалентен YAML в потоковом стиле, и OpenTofu может показывать подробную информацию о структурных изменениях для значений JSON в планах, тогда как блочный YAML OpenTofu будет рассматривать как обычную многострочную строку. Однако создание YAML может повысить удобочитаемость, если люди будут непосредственно читать или изменять полученное значение в удаленной системе.

Примеры​

Блок кода
> yamlencode({"a":"b", "c":"d"})
"a": "b"
"c": "d"

> yamlencode({"foo":[1, 2, 3], "bar": "baz"})
"bar": "baz"
"foo":
- 1
- 2
- 3

> yamlencode({"foo":[1, {"a":"b","c":"d"}, 3], "bar": "baz"})
"bar": "baz"
"foo":
- 1
- "a": "b"
  "c": "d"
- 3

yamlencode всегда использует «блочный стиль» YAML для отображения соответствий и последовательностей, если только соответствие или последовательность не пусты. Чтобы создать YAML в потоковом стиле, используйте вместо этого jsonencode: потоковый стиль YAML является надмножеством синтаксиса JSON.

Связанные функции​

  • jsonencode выполняет аналогичную операцию, используя JSON вместо YAML.
  • yamldecode выполняет обратную операцию — декодирует строку YAML, чтобы получить представленное в ней значение.

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

Spec-Zone.ru

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