Содержание

Что такое 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-файлами с третьей стороной. Чтобы использовать исполняемые файлы, YAML нужно интегрировать, например с языками программирования Perl, Java или шел интерпретатором bash.

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

key: #Это однострочный комментарий
   - value line 5
   #Это
   #многострочный комментарий
 - value line 13

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

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

Валидатор файлов YAML утилита yamllint

В 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)

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