Инструкция описывает добавление на главную заказа собственного типа ресурса — кеша Redis, который выдаёт внутренняя система заказа ресурсов через HTTP API. В результате Redis отображается в разделе «Заказ ресурсов» как отдельный тип ресурса, заказывается для выбранных системы и окружения и удаляется из списка «Недавние ресурсы».
Перед началом работы
Для выполнения инструкции подготовьте:
- разрешения на создание действий и процессов и разрешение
update:home-mapping-sets; - внешний сервис для API системы заказа ресурсов;
- набор маппинга, в котором сопоставлены роли
system,environmentиshared_resource, например набор, созданный мастером первоначальной настройки.
В примере используются идентификаторы параметров каноничной модели каталога: ресурс «Общие ресурсы» с параметрами kind, provider и environment. Для собственной модели каталога используйте параметры, сопоставленные ролям shared_kind, shared_provider и shared_environment.
Действие заказа
Создайте действие, которое вызывает API системы заказа и регистрирует ресурс в каталоге:
Создайте действие типа HTTP-запроса с внешним сервисом системы заказа. Порядок создания действия описан в разделе «Действия».
Задайте тело запроса с параметрами процесса:
{ "name": "{{ .process.instance_name }}", "namespace": "{{ .process.environment }}", "owner": "{{ .process.system }}", "type": "redis" }Настройте создание сущности в ресурсе «Общие ресурсы» после успешного выполнения действия:
- название и идентификатор —
{{ .process.instance_name }}; - параметр
kind—Redis; - параметр
provider—Internal; - параметр
environment—{{ .process.environment }}.
- название и идентификатор —
Настройте создание связи созданного ресурса с системой запуска — связью, сопоставленной роли
contains_shared.
Значения kind и provider определяют, в какой категории главная ищет процесс удаления ресурса.
Процесс заказа
Процесс получает систему и окружение из контекста запуска: систему, выбранную в заголовке раздела «Заказ ресурсов», и окружение, выбранное в окне «Заказать ресурс».
Создайте процесс:
Создайте процесс с названием «Заказать Redis» и добавьте в него задачу с действием заказа. Порядок создания процесса описан в разделе «Процессы».
Добавьте параметры процесса:
Идентификатор Значение по умолчанию Настройки environment{{ .context.environment.slug }}Обязательный system{{ .context.system.slug }}Обязательный instance_name{{ .context.system.slug }}-{{ .context.environment.slug }}Обязательный, показывать в упрощённой форме Заполните описание процесса: оно отображается на карточке процесса в разделе «Заказ ресурсов».
Название ресурса по умолчанию <идентификатор системы>-<идентификатор окружения> совпадает с названием временной строки, которую главная показывает во время заказа. Если пользователь изменит название, временная строка исчезнет по завершении процесса, а созданный ресурс появится в списке после перезагрузки данных.
Процесс удаления
Процесс удаления запускается для сущности общего ресурса, поэтому данные ресурса процесс получает из корня .entity.
Создайте процесс «Удалить Redis»:
- Добавьте задачу с действием, которое вызывает API удаления ресурса и удаляет сущность из каталога после успешного выполнения. Удаление сущности настраивается в разделе действия «Удаление сущностей».
- Добавьте обязательный параметр
instance_nameсо значением по умолчанию{{ .entity.slug }}и используйте его в теле запроса.
Добавление процессов на главную
Добавьте процессы в слоты действий набора маппинга:
- Перейдите в раздел «Администрирование» → «Справочники» → «Правила маппинга» и откройте набор по умолчанию.
- На вкладке «Маппинг каталога» раскройте область «Общие ресурсы» и найдите блок «Действия».
- В слоте «Заказать ресурс» нажмите «Добавить категорию», укажите категорию
Redisи добавьте процесс «Заказать Redis». - В слоте «Удалить общий ресурс» нажмите «Добавить категорию», укажите категорию
Internal Redisи добавьте процесс «Удалить Redis». - Нажмите «Сохранить».
Категория Internal Redis состоит из значений параметров provider и kind ресурса. По ней главная выбирает процесс удаления для ресурсов Redis и не предлагает его для ресурсов других типов.
Проверка результата
Проверьте заказ и удаление ресурса:
- Откройте главную → «Заказ ресурсов» и выберите систему.
- Убедитесь, что в показателе «Типы ресурсов» есть
Redis, а в каталоге процессов — карточка «Заказать Redis». - Нажмите «Запустить» на карточке, выберите окружение и нажмите «Далее».
- В окне «Запустить процесс» проверьте, что параметр
instance_nameзаполнен значением<система>-<окружение>, и нажмите «Запустить». - Дождитесь, пока в списке «Недавние ресурсы» строка с подписью «создаётся» заменится созданным ресурсом.
- Нажмите «Удалить» в строке ресурса и запустите процесс удаления.
Если параметр environment не заполнился, проверьте, что шаблон значения по умолчанию начинается с .context, и что окружение выбрано в окне «Заказать ресурс». Контекст каждого сценария главной описан в разделе «Процессы главной».