Что такое YAML

YAML - формат сериализации данных. Название YAML представляет собой рекурсивный акроним YAML Ain't Markup Language («YAML — не язык разметки»).

YAML в основном используется как формат для файлов конфигурации, например для настройки веб-каркасов Ruby on Rails, Symfony, Docker Compose, Google App Engine, GitLab CI/CD. То есть, с помощью YAML чаще всего создают протоколы автоматизации, которые могут выполнять последовательности команд записанные в YAML-файле. Это позволяет вашей системе быть более независимой и отзывчивой без дополнительного внимания разработчика.

YAML является альтернативой XML. JSON является подмножеством языка YAML.

YAML не содержит исполняемых файлов. Поэтому можно безопасно обмениваться YAML-файлами с третьей стороной. Чтобы использовать исполняемые файлы, YAML нужно интегрировать, например с языками программирования Perl, Java или шел интерпретатором bash.

В языке есть несколько базовых концепций, которые позволяют обрабатывать большинство данных. В YAML существует соглашение о том, что файл может начинаться с "—" и заканчиваться "…", но это не обязательно. Эти маркеры используются для указания начала и конца документа соответственно, особенно в случаях, когда в одном файле содержится несколько документов. Однако в большинстве случаев, особенно когда файл содержит только один документ, эти маркеры можно опустить.

  • Поддержка комментариев. YAML позволяет добавлять комментарии после символа #, как в Python:
key: #Это однострочный комментарий
   - value line 5
   #Это
   #многострочный комментарий
 - value line 13
  • Пары ключ-значение. Большинство данных в YAML-файле хранятся в виде пары ключ-значение, где ключ — это имя пары, а значение — связанные данные.
  • Скаляры и маппинг. Скаляр представляет собой одно значение, которому соответствует имя. YAML поддерживает стандартные типы: int и float, boolean, string и null. Они могут быть представлены в разных видах: шестнадцатеричном, восьмеричном или экспоненциальном. Также существуют специальные типы для математических сущностей, такие как: бесконечность, -бесконечность и NAN.
  • Строки. Строка — это коллекция символов, которая может содержать слово или предложение. Можно использовать либо |, для отдельных строк, либо >, для параграфов.

Кавычки в YAML не нужны.

str: Hello World
data: |
   Это
   Отдельные
   Строки
data: >
   Это
   один параграф
   текста

В Linux существует удобная утилита yamllint для проверки синтаксиса YAML файлов, например не повредит проверить большой docker-compose.yml на ошибки

apt install yamllint

Запустим проверку файла

yamllint docker-compose-nginx-php-fpm/docker-compose.yml
docker-compose-nginx-php-fpm/docker-compose.yml
  1:1       warning  missing document start "---"  (document-start)
  11:81     error    line too long (95 > 80 characters)  (line-length)
  17:17     error    too few spaces after comma  (commas)
  17:27     error    too few spaces after comma  (commas)

Цифры слева – это координаты ошибки: номер строки и столбца. Описание ошибки может вам ни о чем не говорить, зато вы точно знаете, где она находится. Просто посмотрите на это место в проверяемом файле.

PQ VPS сервера в 28+ странах.