YAML — это язык сериализации данных, который широко используется для написания конфигурационных файлов, поэтому его необходимо знать. Сериализация данных — это процесс преобразования сложных объектов данных в поток байтов, который сохраняет состояние объекта в форме, удобной для хранения или передачи.

YAML был аббревиатурой от «Еще один язык разметки», но теперь он означает «YAML — это не язык разметки», чтобы больше подчеркнуть его функции, ориентированные на данные.

ПОПУЛЯРНОСТЬ YAML

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

ОСНОВЫ YAML

Файл YAML обычно начинается с трех дефисов и заканчивается тремя точками, однако это необязательно.

Пары ключ-значение являются основой всех документов YAML. Двоеточие разделяет пары ключ-значение.

---
version: 1.4
description: Sample file
...

YAML поддерживает все основные скалярные типы данных, такие как:

integer: 40
float: 40.5
string: Forty
boolean: True

Примечание. Логическое значение может принимать значения True/False, Yes/No или On/Off.

Мы также можем объявить нулевые значения, используя ключевое слово null или символ ~.

balance: null
balance: ~

СТРОИТЕЛЬНЫЕ БЛОКИ ЯМЛ

Прежде всего, пробелы являются неотъемлемой частью форматирования YAML. Карты и списки — это два строительных блока, с которыми вы часто будете сталкиваться в файлах YAML.

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

Списки или массивы определяются с помощью одного тире для перечисления каждого отдельного элемента списка.

user: Jake
age: 25
address:
  state: CA
  country: USA
movies:
  - Interstellar
  - Die Hard
  - The Godfather

Карты и списки также могут быть определены в одной строке с использованием фигурных и квадратных скобок соответственно.

user: Jake
age: 25
address: {state: CA, country: USA}
movies: [Interstellar, Die Hard, The Godfather]

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

{
  "user": "Jake",
  "age": 25,
  "address": {
    "state": "CA",
    "country": "USA"
  },
  "movies": [
    "Interstellar",
    "Die Hard",
    "The Godfather"
  ]
}

ЕЩЕ НЕМНОГО YAML

Вы также можете определить, как YAML обрабатывает многострочные строки, используя индикаторы блочного стиля. Используйте | символ, если вы хотите сохранить символы новой строки. Используйте знак ›, чтобы заменить символы новой строки пробелами.

review2: |
  This will
  all be on
  separate lines
review1: >
  This will
  all be in
  one line

Наконец, вы можете писать комментарии в файле YAML, используя символ #. YAML поддерживает только однострочные комментарии.

# This a comment in YAML

ЗАКЛЮЧЕНИЕ

Мы рассмотрели все основы, необходимые для начала работы с YAML. Теперь, чтобы подвести итоги, давайте взглянем на файл конфигурации docker-compose.yaml из одного из моих проектов. Просто попробуйте понять общую структуру файла YAML.

YAML быстро набирает популярность и широко используется для создания файлов конфигурации. Знание YAML является обязательным, особенно для всех, кто интересуется DevOps и облачными вычислениями.