Применение АппОптима / Владение / Приложение для владения
Последняя версия АппОптима
Приложение Ownership предоставляет действия для построения рабочего процесса, запрашивающего команду владения объекта и связанную контактную информацию. С помощью этих действий вы можете извлекать данные о владении объекта и интегрировать их с другими приложениями, например, для отправки уведомлений Slack или обновлений Jira владением объектов на основе различных триггеров.
Кроме того, приложение Ownership позволяет импортировать команды из следующих источников с помощью автоматизированных рабочих процессов :
- Группы из Microsoft Entra ID
- Группы из ServiceNow
- Любой источник данных, использующий структуру JSON
Подробности см . в разделе Возможности (ниже).
Разрешения
- Для владения требуются следующие разрешения.
environment-api:entities:read
—Читать объекты.settings:objects:read
—Читать объекты настроек 2.0.settings:schemas:read
—Читать схемы настроек 2.0.
- Кроме того, вам потребуются следующие основные разрешения в Workflows (перейдите в раздел Workflows > Настройки > Настройки авторизации).
app-engine:apps:run
— Позволяет просматривать и запускать приложения; обеспечивает базовый доступ к Launcher.app-engine:functions:run
— Позволяет использовать функцию-исполнитель. В качестве альтернативы вы можете настроить пользователей с помощью пользовательской политики AppEngine.
Возможности
Основные возможности Ownership в последней версии АппОптима содержатся в готовых действиях для Workflows . Вы можете комбинировать эти действия с другими задачами и действиями для создания рабочих процессов для импорта команды, уведомлений, назначения задач и других вариантов использования.
import_teams
Это действие позволяет импортировать команды Ownership в АппОптима из разных источников данных. Для всех поддерживаемых источников мы предоставляем шаблоны рабочих процессов которые можно использовать в качестве справочного материала.
- Группы Entra ID Действие
import_teams
берет результаты предопределенного действияget_groups
, которое получает данные о группах из Microsoft Entra ID, и сохраняет данные как команды владения в АппОптима. Таким образом, вы можете использовать информацию о своем Entra ID для назначения команд владения объектами, отслеживаемым АппОптима, без создания команд с нуля.- Убедитесь, что действие
get_groups
предшествует действиюimport_teams
в том же рабочем процессе. Мы рекомендуем, чтобы действиеimport_teams
следовало сразу за действиемget_groups
. Важно для импорта групп Entra ID в качестве команд владения :- Вам всегда необходимо включать
id
иdisplayName
в$select
; эти поля сопоставляются с ID команды и названием команды импортированной команды владения соответственно. - Мы рекомендуем всегда включать параметр
mailNickname
вget_groups
. Это поле имеет уникальные значения в Entra ID и задается как уникальный, понятный человеку дополнительный ID для вашей импортированной команды владения в АппОптима. - ID объекта из Entra ID, импортированный через параметр
id
, устанавливается как уникальный ID команды , а также как внешний ID импортированной команды владения. - Параметр
mail
задается как адрес электронной почты импортированной команды владения.
- Вам всегда необходимо включать
- Выберите группы Entra ID в качестве источника данных на вкладке Вход в действии
import_teams
. - Установите данные, содержащие команды для импорта — в этом случае в качестве входных данных для
{{ result("get_groups") }}
используется результатget_groupsimport_teams
- Выберите настройки импорта . Импорт команды из Entra ID не может быть отменен. Однако вы можете выборочно импортировать и защищать изменения в ранее импортированной информации, выбрав один из следующих вариантов.
- Если вы уже импортировали команды из Entra ID, вы можете выбрать Import new teams and skip existing teams . Эта опция гарантирует, что импортированные ID команд не перезапишут никакую информацию о командах, уже сохраненную в АппОптима. Эта опция позволяет обслуживать команды и планировать запуски импорта команд. Эта опция полезна, когда вы ранее импортировали команды, а затем изменили импортированную информацию в АппОптима. В таких случаях АппОптима, а не Entra ID, является источником правды о ваших существующих командах владения, и вы не хотите, чтобы последующие запуски
import_teams
перезаписывали вашу текущую информацию. - Если вы хотите импортировать команды из Entra ID с нуля, выберите Import new teams and owerwrite existing teams . Для импортируемых ID команд эта опция перезаписывает любую информацию о команде, которая уже существует в АппОптима.
- Если вы уже импортировали команды из Entra ID, вы можете выбрать Import new teams and skip existing teams . Эта опция гарантирует, что импортированные ID команд не перезапишут никакую информацию о командах, уже сохраненную в АппОптима. Эта опция позволяет обслуживать команды и планировать запуски импорта команд. Эта опция полезна, когда вы ранее импортировали команды, а затем изменили импортированную информацию в АппОптима. В таких случаях АппОптима, а не Entra ID, является источником правды о ваших существующих командах владения, и вы не хотите, чтобы последующие запуски
- Убедитесь, что действие
- Группы ServiceNow Действие
import_teams
берет результаты предопределенного действияget_groups
, которое получает данные о группах из ServiceNow и сохраняет данные как команды владения в АппОптима. Таким образом, вы можете использовать информацию ServiceNow для назначения команд владения объектам, отслеживаемым АппОптима, без создания команд с нуля.- Убедитесь, что действие
get_groups
предшествует действиюimport_teams
в том же рабочем процессе. Мы рекомендуем, чтобы действиеimport_teams
следовало сразу за действиемget_groups
. - Выберите группы ServiceNow в качестве источника данных на вкладке Вход в действии
import_teams
. - Установить данные, содержащие команды для импорта — в этом случае в качестве входных данных для
{{ result("get_groups") }}
используется результатget_groupsimport_teams
. - Выберите настройки импорта . Импорт команды из ServiceNow не может быть отменен. Однако вы можете выборочно импортировать и защищать изменения в ранее импортированной информации, выбрав один из следующих вариантов.
- Если вы уже импортировали команды из ServiceNow, вы можете выбрать Import new teams and skip existing teams. Эта опция гарантирует, что импортированные идентификаторы команд не перезапишут никакую информацию о командах, уже сохраненную в АппОптима. Эта опция позволяет выполнять обслуживание команд и запланированные запуски импорта команд. Эта опция полезна, когда вы ранее импортировали команды и изменили импортированную информацию в АппОптима. В таких случаях АппОптима, а не ServiceNow, является источником правды о ваших существующих командах владельцев, и вы не хотите, чтобы последующие запуски
import_teams
перезаписывали вашу текущую информацию. - Если вы хотите импортировать команды из ServiceNow с нуля, выберите Import new teams and owerwrite existing teams. Для импортируемых идентификаторов команд эта опция перезаписывает любую информацию о команде, которая уже существует в АппОптима.
- Если вы уже импортировали команды из ServiceNow, вы можете выбрать Import new teams and skip existing teams. Эта опция гарантирует, что импортированные идентификаторы команд не перезапишут никакую информацию о командах, уже сохраненную в АппОптима. Эта опция позволяет выполнять обслуживание команд и запланированные запуски импорта команд. Эта опция полезна, когда вы ранее импортировали команды и изменили импортированную информацию в АппОптима. В таких случаях АппОптима, а не ServiceNow, является источником правды о ваших существующих командах владельцев, и вы не хотите, чтобы последующие запуски
- Убедитесь, что действие
- JSON
import_teams
позволяет импортировать информацию о команде владения, которая ранее была сгенерирована как массив JSON действиемrun_javascript
в том же рабочем процессе. Этот подход позволяет извлекать информацию о команде из любой сторонней базы данных в структурированном формате, указанном в схеме JSON конфигурации владельцев (builtin:ownership.config
), которую предоставляет АппОптима.- Убедитесь, что действие
run_javascript
предшествуетimport_teams
в том же рабочем процессе. Мы рекомендуем, чтобы действиеimport_teams
следовало сразу за действиемrun_javascript
. Результатомrun_javascript
должен быть массив JSON, который можно потреблятьimport_teams
. - В разделе Схема владения
import_teams
выберите JSON в качестве источника данных на вкладке Вход. - Установите данные, содержащие команды для импорта
{{ result("run_javascript_1") }}
— это результатrun_javascript
. - Выберите настройки импорта . Импорт команды из JSON не может быть отменен. Однако вы можете выборочно импортировать и защищать изменения в ранее импортированной информации, выбрав один из следующих вариантов.
- Import new teams and skip existing teams гарантирует, что для импортируемых идентификаторов команд любая информация о командах, уже сохраненная в АппОптима, не будет перезаписана. Эта опция позволяет обслуживать команды и планировать запуски импорта команд. Эта опция полезна, когда вы ранее импортировали команды, а затем изменили импортированную информацию в АппОптима. В таких случаях вы не хотите, чтобы последующие запуски
import_teams
перезаписывали вашу текущую информацию. - Чтобы импортировать команды с нуля, выберите Import new teams and owerwrite existing. Для импортируемых идентификаторов команд эта опция перезаписывает любую информацию о команде, которая уже существует в АппОптима.
- Import new teams and skip existing teams гарантирует, что для импортируемых идентификаторов команд любая информация о командах, уже сохраненная в АппОптима, не будет перезаписана. Эта опция позволяет обслуживать команды и планировать запуски импорта команд. Эта опция полезна, когда вы ранее импортировали команды, а затем изменили импортированную информацию в АппОптима. В таких случаях вы не хотите, чтобы последующие запуски
- Убедитесь, что действие
get_owners
Предварительные условия: вы создали команды владения в АппОптима и назначили их отслеживаемым объектам.
Действие get_owners
позволяет вам извлекать связанные команды владения, включенные в метаданные указанных объектов. Вы можете определить источник, из которого вы хотите запросить владельцев. И ID объекта, и ID команды могут использоваться по отдельности или в комбинации.
- Выберите ID объектов, либо введя ссылку на выражение Jinja , либо добавив несколько ID объектов, разделив их запятой
,
или точкой с запятой;
. Это действие принимает ID объектов в качестве входных данных, но также может вывести ID объекта на основе предыдущего действия рабочего процесса. - Выберите команду из списка ID команды или введите ссылку на выражение Jinja . Это действие принимает команду в качестве входных данных, но также может вывести команду на основе предыдущего действия рабочего процесса.
- В Фильтр владения выберите владение на основе обязанностей, содержащихся в определениях команды в Фильтр владельцев по ответственности . По умолчанию фильтр не применяется.
Пример создания автоматизированного рабочего процесса
Использование владения в рабочих процессах лучше всего иллюстрируется в Send logs to the owner of an entity в Automation Workflow Creator Sample. Вы можете сохранять иллюстрации в Automation Workflow Creator Sample как Notebooks, что позволяет просматривать подробные инструкции и запускать фрагменты кода для образцов рабочих процессов.
Вы можете использовать Automation Workflow Creator Sample, чтобы ознакомиться с использованием готовых действий владения в Workflows.
- Перейти к примеру Automation Workflow Creator.
- Прокрутите страницу до пункта Send logs to the owner of an entity и выберите Choose warkflow .
- Сохраните иллюстрацию в новом или существующем Notebook и выберите Add . Теперь ваше подробное руководство доступно в Notebooks с подробными инструкциями, примерами кода, которые вы можете запустить, и ссылками на пример рабочего процесса.
- Прокрутите страницу и выберите ссылку на пример рабочего процесса Примеры автоматизации: целевые уведомления, который вы можете изменить в соответствии со своими целями.
Шаги обучения и пример рабочего процесса
В этом разделе представлен контекст и проводится руководство по руководству Владения и пример рабочего процесса, установленные выше . Руководство сохранено в Notebooks , а пример рабочего процесса сохранен в Workflows .
- Шаг 1: Назначьте владение хосту. В качестве предварительного условия вам необходимо настроить владение и назначить команду хосту в вашей среде. Подробнее о доступных методах читайте в разделе Назначение владельцев объектов. Обратите внимание, что вы можете применить тег для владения непосредственно на странице обзора хоста — выберите Владельцы в верхней части страницы, а затем выберите Добавить тег владения.
- Шаг 2: Смоделируйте мероприятие-организатора. В качестве вспомогательного средства для руководства этот шаг имитирует событие хоста типа Пользовательская информация ; в реальном сценарии хост столкнется с событием или проблемой, которая запускает рабочий процесс. В предоставленном примере кода вставьте идентификатор хоста, как показано ниже, и выберите Запустить код . ID хоста можно найти в URL-адресе страницы обзора хоста. Событие можно увидеть на карточке События.
- Шаг 3: Извлечение событий; настройка триггера событий рабочего процесса. На третьем этапе руководства ID хоста принимается в качестве входных данных для выполнения DQL-запроса, который извлекает события хоста указанного типа
CUSTOM_INFO
. Это соответствует первой задаче в Automation Samples: Targeted Notifications sample workflow , которая устанавливает триггер на основе событий для рабочего процесса. Вставьте ID хоста, как показано, и выберите Query events . На изображении ниже показаны выходные данные задачи и сведения о самом последнем событии. - Шаг 4: Извлеките логи хоста. Этот шаг руководства соответствует второй задаче примера рабочего процесса, в котором действие
get_logs
извлекает последние 10 логов для хоста. Вам необходимо указать ID хоста для запуска примера кода в руководстве. Однако рабочий процесс использует код{{ event()["dt.entity.host"] }}
для извлечения логов для хоста, уже определенного в триггере рабочего процесса. - Шаг 5: Получите информацию о владельце хоста (действие
get_owners
). В этом шаге описываются действияget_owners
в примере рабочего процесса Примеры автоматизации: целевые уведомления.get_owners
требует ID объекта в качестве входных данных для извлечения информации о связанной команде владения. Однако в образце рабочего процессаget_owners
использует код{{ event()["dt.entity.host"] }}
для извлечения команд для хоста, уже определенного в триггере рабочего процесса. - Шаг 6: Запустите пример рабочего процесса. Прежде чем выбрать Run для сохраненного примера рабочего процесса, выполните шаг 2 руководства несколько раз, чтобы смоделировать события хоста. Когда вы выполнили свой рабочий процесс, успешные задачи подсвечиваются зеленым цветом. Выберите каждое действие владения в представлении выполнения, чтобы проверить его вывод.
get_owners
возвращает информацию о команде вместе с контактными данными, сгруппированными по типу контакта в формате JSON на вкладке Executions. - Шаг 7: Настройте действие Slack для целевых уведомлений. Вы можете расширить пример рабочего процесса, интегрировав его со Slack for Workflows для отправки целевых уведомлений. Аналогично, если вы извлекаете контактную информацию Jira для команды владения, вы можете интегрировать его с Jira for Workflows для создания задач.