Инструкция описывает добавление на главную заказа собственного типа ресурса — кеша Redis, который выдаёт внутренняя система заказа ресурсов через HTTP API. В результате Redis отображается в разделе «Заказ ресурсов» как отдельный тип ресурса, заказывается для выбранных системы и окружения и удаляется из списка «Недавние ресурсы».

Перед началом работы

Для выполнения инструкции подготовьте:

В примере используются идентификаторы параметров каноничной модели каталога: ресурс «Общие ресурсы» с параметрами kind, provider и environment. Для собственной модели каталога используйте параметры, сопоставленные ролям shared_kind, shared_provider и shared_environment.

Действие заказа

Создайте действие, которое вызывает API системы заказа и регистрирует ресурс в каталоге:

  1. Создайте действие типа HTTP-запроса с внешним сервисом системы заказа. Порядок создания действия описан в разделе «Действия».

  2. Задайте тело запроса с параметрами процесса:

    {
      "name": "{{ .process.instance_name }}",
      "namespace": "{{ .process.environment }}",
      "owner": "{{ .process.system }}",
      "type": "redis"
    }
  3. Настройте создание сущности в ресурсе «Общие ресурсы» после успешного выполнения действия:

    • название и идентификатор — {{ .process.instance_name }};
    • параметр kind — Redis;
    • параметр provider — Internal;
    • параметр environment — {{ .process.environment }}.
  4. Настройте создание связи созданного ресурса с системой запуска — связью, сопоставленной роли contains_shared.

Значения kind и provider определяют, в какой категории главная ищет процесс удаления ресурса.

Процесс заказа

Процесс получает систему и окружение из контекста запуска: систему, выбранную в заголовке раздела «Заказ ресурсов», и окружение, выбранное в окне «Заказать ресурс».

Создайте процесс:

  1. Создайте процесс с названием «Заказать Redis» и добавьте в него задачу с действием заказа. Порядок создания процесса описан в разделе «Процессы».

  2. Добавьте параметры процесса:

    ИдентификаторЗначение по умолчаниюНастройки
    environment{{ .context.environment.slug }}Обязательный
    system{{ .context.system.slug }}Обязательный
    instance_name{{ .context.system.slug }}-{{ .context.environment.slug }}Обязательный, показывать в упрощённой форме
  3. Заполните описание процесса: оно отображается на карточке процесса в разделе «Заказ ресурсов».

Название ресурса по умолчанию <идентификатор системы>-<идентификатор окружения> совпадает с названием временной строки, которую главная показывает во время заказа. Если пользователь изменит название, временная строка исчезнет по завершении процесса, а созданный ресурс появится в списке после перезагрузки данных.

Процесс удаления

Процесс удаления запускается для сущности общего ресурса, поэтому данные ресурса процесс получает из корня .entity.

Создайте процесс «Удалить Redis»:

  1. Добавьте задачу с действием, которое вызывает API удаления ресурса и удаляет сущность из каталога после успешного выполнения. Удаление сущности настраивается в разделе действия «Удаление сущностей».
  2. Добавьте обязательный параметр instance_name со значением по умолчанию {{ .entity.slug }} и используйте его в теле запроса.

Добавление процессов на главную

Добавьте процессы в слоты действий набора маппинга:

  1. Перейдите в раздел «Администрирование» → «Справочники» → «Правила маппинга» и откройте набор по умолчанию.
  2. На вкладке «Маппинг каталога» раскройте область «Общие ресурсы» и найдите блок «Действия».
  3. В слоте «Заказать ресурс» нажмите «Добавить категорию», укажите категорию Redis и добавьте процесс «Заказать Redis».
  4. В слоте «Удалить общий ресурс» нажмите «Добавить категорию», укажите категорию Internal Redis и добавьте процесс «Удалить Redis».
  5. Нажмите «Сохранить».

Категория Internal Redis состоит из значений параметров provider и kind ресурса. По ней главная выбирает процесс удаления для ресурсов Redis и не предлагает его для ресурсов других типов.

Проверка результата

Проверьте заказ и удаление ресурса:

  1. Откройте главную → «Заказ ресурсов» и выберите систему.
  2. Убедитесь, что в показателе «Типы ресурсов» есть Redis, а в каталоге процессов — карточка «Заказать Redis».
  3. Нажмите «Запустить» на карточке, выберите окружение и нажмите «Далее».
  4. В окне «Запустить процесс» проверьте, что параметр instance_name заполнен значением <система>-<окружение>, и нажмите «Запустить».
  5. Дождитесь, пока в списке «Недавние ресурсы» строка с подписью «создаётся» заменится созданным ресурсом.
  6. Нажмите «Удалить» в строке ресурса и запустите процесс удаления.

Если параметр environment не заполнился, проверьте, что шаблон значения по умолчанию начинается с .context, и что окружение выбрано в окне «Заказать ресурс». Контекст каждого сценария главной описан в разделе «Процессы главной».