YAML: простота и эффективность в одной строке

YAML: простота и эффективность в одной строке

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

Что такое YAML

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

Формат используется для настройки серверов, автоматизации задач и управления приложениями. Его главное преимущество — простота: не нужно изучать сложный синтаксис или писать коды, как в других форматах. Всё, что требуется, — это ключи и значения, списки и отступы.


Серверы от AdminVPS — мощные, быстрые машины с гибкой конфигурацией для вашего бизнеса.


Чем YAML отличается от других форматов 

В отличие от XML и JSON, YAML выглядит более аккуратно и понятно благодаря минимализму. Здесь нет лишних скобок и кавычек. Структура данных (то есть, как информация организована) задаётся через отступы и специальные символы. Это делает его простым для чтения и редактирования.

Где мы сталкиваемся с YAML  

С YAML можно соприкоснуться в разных программах и сервисах для задания параметров их работы:

  • В GitLab CI — для автоматического выполнения задач, таких как обновление сайта или выкладка новых версий продукта.
  • В Docker — для описания того, как должны запускаться контейнеры (программы или сервисы) и их окружение.
  • В Ansible — инструменте для автоматизации управления серверами, где YAML помогает описать все необходимые действия.
  • В системах управления сайтами (Netlify или Hugo) этот формат используется для задания параметров работы.
  • В сервисах автоматизации задач этот вариант разметки часто применяют для описания последовательности действий, например, публикации материалов, сборки проектов или управления рекламой.

Пример использования

Допустим, вы хотите настроить сервис, который автоматически публикует материалы в социальных сетях. Это можно сделать с помощью YAML в GitLab CI или Jenkins. 

Или необходимо, чтобы в блоге посты публиковались каждое утро в одно и то же время. Это легко сделать:

публикация:
  расписание:
    - время: "08:00"
      действия:
        - тип: "публикация"
          платформа: "ВКонтакте"
          сообщение: "Новый пост в блоге! Читайте по ссылке: myblog.com/new-post"
        - тип: "публикация"
          платформа: "Одноклассники"
          сообщение: "Новый пост в блоге! #новыйпост #блог"

В этом примере:

  • публикация — блок, описывающий действия, связанные с публикацией;
  • расписание — подблок, который задаёт время выполнения действий;
  • в списке действий (задаваемых через дефисы) указывается, что и на какой платформе публиковать.

Как можно воспользоваться YAML на практике

Можно следать следующее:

  • Автоматизировать множество рутинных задач.
  • Задать последовательность действий для публикации постов в блоге по расписанию.
  • Настроить функции программы на сервере, указав необходимые ресурсы (базу данных, библиотеки, серверы) для корректной работы приложения.
  • Определить сценарии в умных устройствах: включение света в определённое время или запуск музыки при открытии двери.

Попробуем применить его для системы умного дома:

автоматизация:
  - название: "Включить свет при входе домой"
    триггер:
      - событие: "дверь_открыта"
    действия:
      - тип: "включить_свет"
        комната: "гостиная"

Здесь:

  • автоматизация — блок, описывающий сценарии автоматизации;
  • триггер — событие, которое запускает действие (в данном случае, открытие двери);
  • действия — описание того, что нужно сделать (включить свет в гостиной).

Основные элементы

Ключи и значения  

YAML строится на основе пар «ключ-значение». Ключ указывает на название данных, а значение — на саму информацию:

название_приложения: "Умный дом"
версия: "1.0.0"

Здесь название_приложения и версия — это ключи, а «Умный дом» и «1.0.0» — их значения.

Списки или массивы

Данные записываются с помощью дефисов, когда нужно указать несколько элементов одного типа:

подключенные_устройства:
  - "Лампочка"
  - "Термостат"
  - "Камера безопасности"

Этот список указывает подключённые устройства системы умного дома.

Списки с объектами  

Когда каждый элемент имеет свои атрибуты, это называется списком объектов: пользователи:

  - имя: "Алексей"
    роль: "Администратор"
  - имя: "Мария"
    роль: "Пользователь"

Здесь указаны пользователи и их роли в системе.

Вложенные блоки  

Отступы в YAML помогают создавать вложенные блоки, чтобы описывать более сложные зависимости:

приложение:
  название: "Чат-бот для поддержки"
  детали:
    язык: "JavaScript"
    библиотека: "Node.js"
    интеграция:
      - "Telegram"
      - "WhatsApp"

Этот пример показывает, как можно организовать информацию о приложении, его языке программирования, библиотеках и интеграциях.

Как работать с YAML

1. Создайте YAML-файл. Откройте любой текстовый редактор, например, Notepad или TextEdit, и начните писать вашу конфигурацию:

публикация:
  расписание:
    - время: "08:00"
      действия:
        - тип: "публикация"
          платформа: "ВКонтакте"
          сообщение: "Новый пост в блоге!"

2. Сохраните файл с расширением .yaml или .yml.

3. Загрузите файл в нужную систему. Например, если это система умного дома Home Assistant, загрузите YAML через её административную панель.

4. Проверьте на ошибки. Многие программы автоматически проверяют YAML, но если это необходимо, можно использовать онлайн-валидаторы (например, YAML Lint).

Пара советов по использованию YAML

При редактировании YAML-файла часто возникает ошибка, связанная с неправильным использованием отступов. Если вы случайно используете пробелы вместо табуляции или не соблюдаете однородность отступов в одном блоке, программа не распознает структуру данных. Всегда используйте один тип: либо пробелы, либо табуляцию (рекомендуется использовать пробелы).

Если вы используете разные количества пробелов в одном и том же блоке данных, программа не сможет правильно интерпретировать информацию. Это может привести к сбоям в работе приложения. Рекомендуется использовать пробелы (обычно 2 или 4) вместо табуляции.

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

1. Visual Studio Code (code.visualstudio.com):

  • бесплатный и мощный редактор от Microsoft с поддержкой множества расширений для работы с YAML;
  • встроенная проверка синтаксиса и поддержка автодополнения.

2. Sublime Text (www.sublimetext.com):

  • быстрый и лёгкий редактор, который можно настроить для работы с YAML через плагины (приложения);
  • подсветка синтаксиса и возможность настройки.

3. Notepad++:

  • текстовый редактор для Windows с поддержкой YAML через приложения;
  • лёгкий и простой в использовании.

4. Онлайн YAML Validators:

  • такие, как YAML Lint и Code Beautify YAML Validator, помогут проверять YAML-код в браузере.

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

Читайте в блоге:

Что будем искать? Например,VPS-сервер

Мы в социальных сетях