Открыть меню
Открыть персональное меню
Вы не представились системе
Your IP address will be publicly visible if you make any edits.

Приложение для владения: различия между версиями

Материал из Документация АппОптима
Нет описания правки
Нет описания правки
 
Строка 1: Строка 1:
'''''[[Применение Ключ-АСТРОМ]] / [[Применение Ключ-АСТРОМ#.D0.92.D0.BB.D0.B0.D0.B4.D0.B5.D0.BD.D0.B8.D0.B5|Владение]] / Приложение для владения'''''
'''''[[Применение АппОптима]] / Владение / Приложение для владения'''''


'''''Последняя версия Ключ-АСТРОМ'''''
'''''Последняя версия АппОптима'''''


Приложение '''Ownership''' предоставляет действия для построения рабочего процесса, запрашивающего команду владения объекта и связанную контактную информацию. С помощью этих действий вы можете извлекать данные о владении объекта и интегрировать их с другими приложениями, например, для отправки уведомлений Slack или обновлений Jira владением объектов на основе различных триггеров.
Приложение '''Ownership''' предоставляет действия для построения рабочего процесса, запрашивающего команду владения объекта и связанную контактную информацию. С помощью этих действий вы можете извлекать данные о владении объекта и интегрировать их с другими приложениями, например, для отправки уведомлений Slack или обновлений Jira владением объектов на основе различных триггеров.
Строка 24: Строка 24:


== Возможности ==
== Возможности ==
Основные возможности '''Ownership''' в последней версии Ключ-АСТРОМ содержатся в готовых действиях для '''Workflows'''  . Вы можете комбинировать эти действия с другими задачами и действиями для создания рабочих процессов для импорта команды, уведомлений, назначения задач и других вариантов использования.
Основные возможности '''Ownership''' в последней версии АппОптима содержатся в готовых действиях для '''Workflows'''  . Вы можете комбинировать эти действия с другими задачами и действиями для создания рабочих процессов для импорта команды, уведомлений, назначения задач и других вариантов использования.


=== <code>import_teams</code> ===
=== <code>import_teams</code> ===
Это действие позволяет импортировать команды '''Ownership''' в Ключ-АСТРОМ из разных источников данных. Для всех поддерживаемых источников мы предоставляем [https://github.com/Dynatrace/Dynatrace-workflow-samples/tree/main/samples/Team-Import '''''шаблоны рабочих процессов'''''] которые можно использовать в качестве справочного материала.
Это действие позволяет импортировать команды '''Ownership''' в АппОптима из разных источников данных. Для всех поддерживаемых источников мы предоставляем [https://github.com/Dynatrace/Dynatrace-workflow-samples/tree/main/samples/Team-Import '''''шаблоны рабочих процессов'''''] которые можно использовать в качестве справочного материала.


* Группы '''Entra ID'''  Действие <code>import_teams</code> берет результаты предопределенного действия <code>get_groups</code>, которое получает данные о группах из [[Полное руководство по мониторингу служб Azure|'''''Microsoft Entra ID''''']], и сохраняет данные как [[Создание и управление владениями|'''''команды владения''''']] в Ключ-АСТРОМ. Таким образом, вы можете использовать информацию о своем Entra ID для назначения команд владения объектами, отслеживаемым Ключ-АСТРОМ, без создания команд с нуля.
* Группы '''Entra ID'''  Действие <code>import_teams</code> берет результаты предопределенного действия <code>get_groups</code>, которое получает данные о группах из [[Полное руководство по мониторингу служб Azure|'''''Microsoft Entra ID''''']], и сохраняет данные как [[Создание и управление владениями|'''''команды владения''''']] в АппОптима. Таким образом, вы можете использовать информацию о своем Entra ID для назначения команд владения объектами, отслеживаемым АппОптима, без создания команд с нуля.
*# Убедитесь, что действие <code>get_groups</code> предшествует действию <code>import_teams</code> в том же рабочем процессе. Мы рекомендуем, чтобы действие <code>import_teams</code> следовало сразу за действием <code>get_groups</code>.  Важно для импорта групп '''Entra ID''' в качестве команд владения :
*# Убедитесь, что действие <code>get_groups</code> предшествует действию <code>import_teams</code> в том же рабочем процессе. Мы рекомендуем, чтобы действие <code>import_teams</code> следовало сразу за действием <code>get_groups</code>.  Важно для импорта групп '''Entra ID''' в качестве команд владения :
*#* Вам всегда необходимо включать <code>id</code> и <code>displayName</code> в <code>$select</code>; эти поля сопоставляются с ID команды и названием команды импортированной команды владения соответственно.
*#* Вам всегда необходимо включать <code>id</code> и <code>displayName</code> в <code>$select</code>; эти поля сопоставляются с ID команды и названием команды импортированной команды владения соответственно.
*#* Мы рекомендуем всегда включать параметр <code>mailNickname</code> в <code>get_groups</code>. Это поле имеет уникальные значения в '''Entra ID''' и задается как уникальный, понятный человеку дополнительный ID для вашей импортированной команды владения в Ключ-АСТРОМ.
*#* Мы рекомендуем всегда включать параметр <code>mailNickname</code> в <code>get_groups</code>. Это поле имеет уникальные значения в '''Entra ID''' и задается как уникальный, понятный человеку дополнительный ID для вашей импортированной команды владения в АппОптима.
*#* ID объекта из '''Entra ID''', импортированный через параметр <code>id</code>, устанавливается как уникальный ID команды , а также как внешний ID импортированной команды владения.
*#* ID объекта из '''Entra ID''', импортированный через параметр <code>id</code>, устанавливается как уникальный ID команды , а также как внешний ID импортированной команды владения.
*#* Параметр <code>mail</code> задается как адрес электронной почты импортированной команды владения.
*#* Параметр <code>mail</code> задается как адрес электронной почты импортированной команды владения.
Строка 38: Строка 38:
*# Установите данные, содержащие команды для импорта — в этом случае в качестве входных данных для <code><nowiki>{{ result("get_groups") }}</nowiki></code> используется результат <code>get_groupsimport_teams</code>
*# Установите данные, содержащие команды для импорта — в этом случае в качестве входных данных для <code><nowiki>{{ result("get_groups") }}</nowiki></code> используется результат <code>get_groupsimport_teams</code>
*# Выберите настройки импорта .  Импорт команды из '''Entra ID''' не может быть отменен. Однако вы можете выборочно импортировать и защищать изменения в ранее импортированной информации, выбрав один из следующих вариантов.
*# Выберите настройки импорта .  Импорт команды из '''Entra ID''' не может быть отменен. Однако вы можете выборочно импортировать и защищать изменения в ранее импортированной информации, выбрав один из следующих вариантов.
*#* Если вы уже импортировали команды из '''Entra ID''', вы можете выбрать '''Import new teams and skip existing teams''' . Эта опция гарантирует, что импортированные ID команд не перезапишут никакую информацию о командах, уже сохраненную в Ключ-АСТРОМ. Эта опция позволяет обслуживать команды и планировать запуски импорта команд.  Эта опция полезна, когда вы ранее импортировали команды, а затем изменили импортированную информацию в Ключ-АСТРОМ. В таких случаях Ключ-АСТРОМ, а не '''Entra ID''', является источником правды о ваших существующих командах владения, и вы не хотите, чтобы последующие запуски <code>import_teams</code> перезаписывали вашу текущую информацию.
*#* Если вы уже импортировали команды из '''Entra ID''', вы можете выбрать '''Import new teams and skip existing teams''' . Эта опция гарантирует, что импортированные ID команд не перезапишут никакую информацию о командах, уже сохраненную в АппОптима. Эта опция позволяет обслуживать команды и планировать запуски импорта команд.  Эта опция полезна, когда вы ранее импортировали команды, а затем изменили импортированную информацию в АппОптима. В таких случаях АппОптима, а не '''Entra ID''', является источником правды о ваших существующих командах владения, и вы не хотите, чтобы последующие запуски <code>import_teams</code> перезаписывали вашу текущую информацию.
*#* Если вы хотите импортировать команды из '''Entra ID''' с нуля, выберите '''Import new teams and owerwrite existing teams''' . Для импортируемых ID команд эта опция перезаписывает любую информацию о команде, которая уже существует в Ключ-АСТРОМ.
*#* Если вы хотите импортировать команды из '''Entra ID''' с нуля, выберите '''Import new teams and owerwrite existing teams''' . Для импортируемых ID команд эта опция перезаписывает любую информацию о команде, которая уже существует в АппОптима.


[[Файл:267.png|граница]]
[[Файл:267.png|граница]]


* Группы '''''ServiceNow'''''  Действие <code>import_teams</code>берет результаты предопределенного действия <code>get_groups</code>, которое получает данные о группах из '''ServiceNow''' и сохраняет данные как [[Создание и управление владениями|'''''команды владения''''']] в Ключ-АСТРОМ. Таким образом, вы можете использовать информацию '''ServiceNow''' для назначения команд владения объектам, отслеживаемым Ключ-АСТРОМ, без создания команд с нуля.
* Группы '''''ServiceNow'''''  Действие <code>import_teams</code>берет результаты предопределенного действия <code>get_groups</code>, которое получает данные о группах из '''ServiceNow''' и сохраняет данные как [[Создание и управление владениями|'''''команды владения''''']] в АппОптима. Таким образом, вы можете использовать информацию '''ServiceNow''' для назначения команд владения объектам, отслеживаемым АппОптима, без создания команд с нуля.
*# Убедитесь, что действие <code>get_groups</code> предшествует действию <code>import_teams</code> в том же рабочем процессе. Мы рекомендуем, чтобы действие <code>import_teams</code> следовало сразу за действием <code>get_groups</code>.
*# Убедитесь, что действие <code>get_groups</code> предшествует действию <code>import_teams</code> в том же рабочем процессе. Мы рекомендуем, чтобы действие <code>import_teams</code> следовало сразу за действием <code>get_groups</code>.
*# Выберите группы '''ServiceNow''' в качестве источника данных на вкладке '''Вход''' в действии <code>import_teams</code>.
*# Выберите группы '''ServiceNow''' в качестве источника данных на вкладке '''Вход''' в действии <code>import_teams</code>.
*# Установить данные, содержащие команды для импорта — в этом случае в качестве входных данных для <code><nowiki>{{ result("get_groups") }}</nowiki></code> используется результат <code>get_groupsimport_teams</code>.
*# Установить данные, содержащие команды для импорта — в этом случае в качестве входных данных для <code><nowiki>{{ result("get_groups") }}</nowiki></code> используется результат <code>get_groupsimport_teams</code>.
*# Выберите настройки импорта .  Импорт команды из '''ServiceNow''' не может быть отменен. Однако вы можете выборочно импортировать и защищать изменения в ранее импортированной информации, выбрав один из следующих вариантов.
*# Выберите настройки импорта .  Импорт команды из '''ServiceNow''' не может быть отменен. Однако вы можете выборочно импортировать и защищать изменения в ранее импортированной информации, выбрав один из следующих вариантов.
*#* Если вы уже импортировали команды из '''ServiceNow''', вы можете выбрать '''Import new teams and skip existing teams'''. Эта опция гарантирует, что импортированные идентификаторы команд не перезапишут никакую информацию о командах, уже сохраненную в Ключ-АСТРОМ. Эта опция позволяет выполнять обслуживание команд и запланированные запуски импорта команд.  Эта опция полезна, когда вы ранее импортировали команды и изменили импортированную информацию в Ключ-АСТРОМ. В таких случаях Ключ-АСТРОМ, а не '''ServiceNow''', является источником правды о ваших существующих командах владельцев, и вы не хотите, чтобы последующие запуски <code>import_teams</code> перезаписывали вашу текущую информацию.
*#* Если вы уже импортировали команды из '''ServiceNow''', вы можете выбрать '''Import new teams and skip existing teams'''. Эта опция гарантирует, что импортированные идентификаторы команд не перезапишут никакую информацию о командах, уже сохраненную в АппОптима. Эта опция позволяет выполнять обслуживание команд и запланированные запуски импорта команд.  Эта опция полезна, когда вы ранее импортировали команды и изменили импортированную информацию в АппОптима. В таких случаях АппОптима, а не '''ServiceNow''', является источником правды о ваших существующих командах владельцев, и вы не хотите, чтобы последующие запуски <code>import_teams</code> перезаписывали вашу текущую информацию.
*#* Если вы хотите импортировать команды из '''ServiceNow''' с нуля, выберите '''Import new teams and owerwrite existing teams'''. Для импортируемых идентификаторов команд эта опция перезаписывает любую информацию о команде, которая уже существует в Ключ-АСТРОМ.
*#* Если вы хотите импортировать команды из '''ServiceNow''' с нуля, выберите '''Import new teams and owerwrite existing teams'''. Для импортируемых идентификаторов команд эта опция перезаписывает любую информацию о команде, которая уже существует в АппОптима.
* '''JSON'''  <code>import_teams</code> позволяет импортировать информацию о команде владения, которая ранее была сгенерирована как массив '''JSON''' действием <code>run_javascript</code> в том же рабочем процессе. Этот подход позволяет извлекать информацию о команде из любой сторонней базы данных в структурированном формате, указанном в схеме '''JSON''' конфигурации владельцев (<code>builtin:ownership.config</code>), которую предоставляет Ключ-АСТРОМ.
* '''JSON'''  <code>import_teams</code> позволяет импортировать информацию о команде владения, которая ранее была сгенерирована как массив '''JSON''' действием <code>run_javascript</code> в том же рабочем процессе. Этот подход позволяет извлекать информацию о команде из любой сторонней базы данных в структурированном формате, указанном в схеме '''JSON''' конфигурации владельцев (<code>builtin:ownership.config</code>), которую предоставляет АппОптима.
*# Убедитесь, что действие <code>run_javascript</code> предшествует <code>import_teams</code> в том же рабочем процессе. Мы рекомендуем, чтобы действие <code>import_teams</code> следовало сразу за действием <code>run_javascript</code>. Результатом <code>run_javascript</code> должен быть массив '''JSON''', который можно потреблять <code>import_teams</code>.
*# Убедитесь, что действие <code>run_javascript</code> предшествует <code>import_teams</code> в том же рабочем процессе. Мы рекомендуем, чтобы действие <code>import_teams</code> следовало сразу за действием <code>run_javascript</code>. Результатом <code>run_javascript</code> должен быть массив '''JSON''', который можно потреблять <code>import_teams</code>.
*# В разделе '''Схема владения''' <code>import_teams</code> выберите '''JSON''' в качестве источника данных на вкладке '''Вход'''.
*# В разделе '''Схема владения''' <code>import_teams</code> выберите '''JSON''' в качестве источника данных на вкладке '''Вход'''.
*# Установите данные, содержащие команды для импорта <code><nowiki>{{ result("run_javascript_1") }}</nowiki></code>— это результат <code>run_javascript</code>.
*# Установите данные, содержащие команды для импорта <code><nowiki>{{ result("run_javascript_1") }}</nowiki></code>— это результат <code>run_javascript</code>.
*# Выберите настройки импорта .  Импорт команды из '''JSON''' не может быть отменен. Однако вы можете выборочно импортировать и защищать изменения в ранее импортированной информации, выбрав один из следующих вариантов.
*# Выберите настройки импорта .  Импорт команды из '''JSON''' не может быть отменен. Однако вы можете выборочно импортировать и защищать изменения в ранее импортированной информации, выбрав один из следующих вариантов.
*#* '''Import new teams and skip existing teams''' гарантирует, что для импортируемых идентификаторов команд любая информация о командах, уже сохраненная в Ключ-АСТРОМ, не будет перезаписана. Эта опция позволяет обслуживать команды и планировать запуски импорта команд.  Эта опция полезна, когда вы ранее импортировали команды, а затем изменили импортированную информацию в Ключ-АСТРОМ. В таких случаях вы не хотите, чтобы последующие запуски <code>import_teams</code> перезаписывали вашу текущую информацию.
*#* '''Import new teams and skip existing teams''' гарантирует, что для импортируемых идентификаторов команд любая информация о командах, уже сохраненная в АппОптима, не будет перезаписана. Эта опция позволяет обслуживать команды и планировать запуски импорта команд.  Эта опция полезна, когда вы ранее импортировали команды, а затем изменили импортированную информацию в АппОптима. В таких случаях вы не хотите, чтобы последующие запуски <code>import_teams</code> перезаписывали вашу текущую информацию.
*#* Чтобы импортировать команды с нуля, выберите '''Import new teams and owerwrite existing'''. Для импортируемых идентификаторов команд эта опция перезаписывает любую информацию о команде, которая уже существует в Ключ-АСТРОМ.
*#* Чтобы импортировать команды с нуля, выберите '''Import new teams and owerwrite existing'''. Для импортируемых идентификаторов команд эта опция перезаписывает любую информацию о команде, которая уже существует в АппОптима.


=== <code>get_owners</code> ===
=== <code>get_owners</code> ===
Предварительные условия: вы создали команды владения в Ключ-АСТРОМ и назначили их отслеживаемым объектам.
Предварительные условия: вы создали команды владения в АппОптима и назначили их отслеживаемым объектам.


Действие <code>get_owners</code> позволяет вам извлекать связанные команды владения, включенные в метаданные указанных объектов. Вы можете определить источник, из которого вы хотите запросить владельцев. И ID объекта, и ID команды могут использоваться по отдельности или в комбинации.
Действие <code>get_owners</code> позволяет вам извлекать связанные команды владения, включенные в метаданные указанных объектов. Вы можете определить источник, из которого вы хотите запросить владельцев. И ID объекта, и ID команды могут использоваться по отдельности или в комбинации.
Строка 76: Строка 76:
# Перейти к примеру '''Automation Workflow Creator'''.  [[Файл:269.png|граница]]
# Перейти к примеру '''Automation Workflow Creator'''.  [[Файл:269.png|граница]]
# Прокрутите страницу до пункта '''Send logs to the owner of an entity''' и выберите '''Choose warkflow''' .
# Прокрутите страницу до пункта '''Send logs to the owner of an entity''' и выберите '''Choose warkflow''' .
# Сохраните иллюстрацию в новом или существующем '''Notebook''' и выберите '''Add''' .  [[Файл:270.png|граница]]  Теперь ваше подробное руководство доступно в '''Notebooks''' с подробными инструкциями, примерами кода, которые вы можете запустить, и ссылками на пример рабочего процесса.  [[Файл:272.png|граница]]
# Сохраните иллюстрацию в новом или существующем '''Notebook''' и выберите '''Add''' .  [[Файл:270.png|граница]]  Теперь ваше подробное руководство доступно в '''Notebooks''' с подробными инструкциями, примерами кода, которые вы можете запустить, и ссылками на пример рабочего процесса.  [[Файл:272.png|граница|1080x1080пкс]]
# Прокрутите страницу и выберите ссылку на пример рабочего процесса '''Примеры автоматизации: целевые уведомления''', который вы можете изменить в соответствии со своими целями.  [[Файл:273.png]]  [[Файл:274.png|граница]]
# Прокрутите страницу и выберите ссылку на пример рабочего процесса '''Примеры автоматизации: целевые уведомления''', который вы можете изменить в соответствии со своими целями.  [[Файл:273.png|1076x1076пкс]]  [[Файл:274.png|граница|1078x1078пкс]]


== Шаги обучения и пример рабочего процесса ==
== Шаги обучения и пример рабочего процесса ==
В этом разделе представлен контекст и проводится руководство по руководству '''Владения''' и пример рабочего процесса, установленные выше . Руководство сохранено в '''Notebooks'''  , а пример рабочего процесса сохранен в '''Workflows'''  .
В этом разделе представлен контекст и проводится руководство по руководству '''Владения''' и пример рабочего процесса, установленные выше . Руководство сохранено в '''Notebooks'''  , а пример рабочего процесса сохранен в '''Workflows'''  .


* Шаг 1: Назначьте владение хосту.  В качестве предварительного условия вам необходимо настроить владение и назначить команду хосту в вашей среде. Подробнее о доступных методах читайте в разделе '''''[[Назначение владельцев объектов]]'''''. Обратите внимание, что вы можете применить тег для владения непосредственно на странице обзора хоста — выберите '''Владельцы''' в верхней части страницы, а затем выберите '''Добавить тег владения'''.  [[Файл:275.png|граница]]
* Шаг 1: Назначьте владение хосту.  В качестве предварительного условия вам необходимо настроить владение и назначить команду хосту в вашей среде. Подробнее о доступных методах читайте в разделе '''''[[Назначение владельцев объектов]]'''''. Обратите внимание, что вы можете применить тег для владения непосредственно на странице обзора хоста — выберите '''Владельцы''' в верхней части страницы, а затем выберите '''Добавить тег владения'''.  [[Файл:275.png|граница|1073x1073пкс]]
* Шаг 2: Смоделируйте мероприятие-организатора.  В качестве вспомогательного средства для руководства этот шаг имитирует событие хоста типа '''Пользовательская информация''' ; в реальном сценарии хост столкнется с событием или проблемой, которая запускает рабочий процесс.  В предоставленном примере кода вставьте идентификатор хоста, как показано ниже, и выберите '''Запустить''' '''код''' . ID хоста можно найти в URL-адресе страницы обзора хоста.  [[Файл:276.png|граница]]  Событие можно увидеть на карточке '''События'''.  [[Файл:277.png|граница]]
* Шаг 2: Смоделируйте мероприятие-организатора.  В качестве вспомогательного средства для руководства этот шаг имитирует событие хоста типа '''Пользовательская информация''' ; в реальном сценарии хост столкнется с событием или проблемой, которая запускает рабочий процесс.  В предоставленном примере кода вставьте идентификатор хоста, как показано ниже, и выберите '''Запустить''' '''код''' . ID хоста можно найти в URL-адресе страницы обзора хоста.  [[Файл:276.png|граница|1072x1072пкс]]  Событие можно увидеть на карточке '''События'''.  [[Файл:277.png|граница]]
* Шаг 3: Извлечение событий; настройка триггера событий рабочего процесса.  На третьем этапе руководства ID хоста принимается в качестве входных данных для выполнения DQL-запроса, который извлекает события хоста указанного типа <code>CUSTOM_INFO</code>.  Это соответствует первой задаче в '''Automation Samples: Targeted Notifications sample workflow''' , которая устанавливает триггер на основе событий для рабочего процесса. Вставьте ID хоста, как показано, и выберите '''Query events''' . На изображении ниже показаны выходные данные задачи и сведения о самом последнем событии.  [[Файл:278.png|граница]]
* Шаг 3: Извлечение событий; настройка триггера событий рабочего процесса.  На третьем этапе руководства ID хоста принимается в качестве входных данных для выполнения DQL-запроса, который извлекает события хоста указанного типа <code>CUSTOM_INFO</code>.  Это соответствует первой задаче в '''Automation Samples: Targeted Notifications sample workflow''' , которая устанавливает триггер на основе событий для рабочего процесса. Вставьте ID хоста, как показано, и выберите '''Query events''' . На изображении ниже показаны выходные данные задачи и сведения о самом последнем событии.  [[Файл:278.png|граница|1073x1073пкс]]
* Шаг 4: Извлеките логи хоста.  Этот шаг руководства соответствует второй задаче примера рабочего процесса, в котором действие <code>get_logs</code> извлекает последние 10 логов для хоста. Вам необходимо указать ID хоста для запуска примера кода в руководстве. Однако рабочий процесс использует код <code><nowiki>{{ event()["dt.entity.host"] }}</nowiki></code> для извлечения логов для хоста, уже определенного в триггере рабочего процесса.
* Шаг 4: Извлеките логи хоста.  Этот шаг руководства соответствует второй задаче примера рабочего процесса, в котором действие <code>get_logs</code> извлекает последние 10 логов для хоста. Вам необходимо указать ID хоста для запуска примера кода в руководстве. Однако рабочий процесс использует код <code><nowiki>{{ event()["dt.entity.host"] }}</nowiki></code> для извлечения логов для хоста, уже определенного в триггере рабочего процесса.
* Шаг 5: Получите информацию о владельце хоста (действие <code>get_owners</code>).  В этом шаге описываются действия <code>get_owners</code> в примере рабочего процесса '''Примеры автоматизации: целевые уведомления'''.  <code>get_owners</code> требует ID объекта в качестве входных данных для извлечения информации о связанной команде владения. Однако в образце рабочего процесса <code>get_owners</code> использует код <code><nowiki>{{ event()["dt.entity.host"] }}</nowiki></code> для извлечения команд для хоста, уже определенного в триггере рабочего процесса.  [[Файл:279.png|граница]]
* Шаг 5: Получите информацию о владельце хоста (действие <code>get_owners</code>).  В этом шаге описываются действия <code>get_owners</code> в примере рабочего процесса '''Примеры автоматизации: целевые уведомления'''.  <code>get_owners</code> требует ID объекта в качестве входных данных для извлечения информации о связанной команде владения. Однако в образце рабочего процесса <code>get_owners</code> использует код <code><nowiki>{{ event()["dt.entity.host"] }}</nowiki></code> для извлечения команд для хоста, уже определенного в триггере рабочего процесса.  [[Файл:279.png|граница|1077x1077пкс]]
* Шаг 6: Запустите пример рабочего процесса.  Прежде чем выбрать '''Run''' для сохраненного примера рабочего процесса, выполните шаг 2 руководства несколько раз, чтобы смоделировать события хоста.  Когда вы выполнили свой рабочий процесс, успешные задачи подсвечиваются зеленым цветом. Выберите каждое действие владения в представлении выполнения, чтобы проверить его вывод.  <code>get_owners</code> возвращает информацию о команде вместе с контактными данными, сгруппированными по типу контакта в формате '''JSON''' на вкладке '''Executions'''.  [[Файл:280.png|граница]]
* Шаг 6: Запустите пример рабочего процесса.  Прежде чем выбрать '''Run''' для сохраненного примера рабочего процесса, выполните шаг 2 руководства несколько раз, чтобы смоделировать события хоста.  Когда вы выполнили свой рабочий процесс, успешные задачи подсвечиваются зеленым цветом. Выберите каждое действие владения в представлении выполнения, чтобы проверить его вывод.  <code>get_owners</code> возвращает информацию о команде вместе с контактными данными, сгруппированными по типу контакта в формате '''JSON''' на вкладке '''Executions'''.  [[Файл:280.png|граница|1080x1080пкс]]
* Шаг 7: Настройте действие '''Slack''' для целевых уведомлений.  Вы можете расширить пример рабочего процесса, интегрировав его со '''Slack for Workflows''' для отправки целевых уведомлений. Аналогично, если вы извлекаете контактную информацию '''Jira''' для команды владения, вы можете интегрировать его с '''Jira for Workflows''' для создания задач.
* Шаг 7: Настройте действие '''Slack''' для целевых уведомлений.  Вы можете расширить пример рабочего процесса, интегрировав его со '''Slack for Workflows''' для отправки целевых уведомлений. Аналогично, если вы извлекаете контактную информацию '''Jira''' для команды владения, вы можете интегрировать его с '''Jira for Workflows''' для создания задач.

Текущая версия от 15:02, 26 декабря 2024

Применение АппОптима / Владение / Приложение для владения

Последняя версия АппОптима

Приложение 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 для назначения команд владения объектами, отслеживаемым АппОптима, без создания команд с нуля.
    1. Убедитесь, что действие 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 задается как адрес электронной почты импортированной команды владения.
    2. Выберите группы Entra ID в качестве источника данных на вкладке Вход в действии import_teams.
    3. Установите данные, содержащие команды для импорта — в этом случае в качестве входных данных для {{ result("get_groups") }} используется результат get_groupsimport_teams
    4. Выберите настройки импорта . Импорт команды из 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 команд эта опция перезаписывает любую информацию о команде, которая уже существует в АппОптима.

267.png

  • Группы ServiceNow Действие import_teamsберет результаты предопределенного действия get_groups, которое получает данные о группах из ServiceNow и сохраняет данные как команды владения в АппОптима. Таким образом, вы можете использовать информацию ServiceNow для назначения команд владения объектам, отслеживаемым АппОптима, без создания команд с нуля.
    1. Убедитесь, что действие get_groups предшествует действию import_teams в том же рабочем процессе. Мы рекомендуем, чтобы действие import_teams следовало сразу за действием get_groups.
    2. Выберите группы ServiceNow в качестве источника данных на вкладке Вход в действии import_teams.
    3. Установить данные, содержащие команды для импорта — в этом случае в качестве входных данных для {{ result("get_groups") }} используется результат get_groupsimport_teams.
    4. Выберите настройки импорта . Импорт команды из ServiceNow не может быть отменен. Однако вы можете выборочно импортировать и защищать изменения в ранее импортированной информации, выбрав один из следующих вариантов.
      • Если вы уже импортировали команды из ServiceNow, вы можете выбрать Import new teams and skip existing teams. Эта опция гарантирует, что импортированные идентификаторы команд не перезапишут никакую информацию о командах, уже сохраненную в АппОптима. Эта опция позволяет выполнять обслуживание команд и запланированные запуски импорта команд. Эта опция полезна, когда вы ранее импортировали команды и изменили импортированную информацию в АппОптима. В таких случаях АппОптима, а не ServiceNow, является источником правды о ваших существующих командах владельцев, и вы не хотите, чтобы последующие запуски import_teams перезаписывали вашу текущую информацию.
      • Если вы хотите импортировать команды из ServiceNow с нуля, выберите Import new teams and owerwrite existing teams. Для импортируемых идентификаторов команд эта опция перезаписывает любую информацию о команде, которая уже существует в АппОптима.
  • JSON import_teams позволяет импортировать информацию о команде владения, которая ранее была сгенерирована как массив JSON действием run_javascript в том же рабочем процессе. Этот подход позволяет извлекать информацию о команде из любой сторонней базы данных в структурированном формате, указанном в схеме JSON конфигурации владельцев (builtin:ownership.config), которую предоставляет АппОптима.
    1. Убедитесь, что действие run_javascript предшествует import_teams в том же рабочем процессе. Мы рекомендуем, чтобы действие import_teams следовало сразу за действием run_javascript. Результатом run_javascript должен быть массив JSON, который можно потреблять import_teams.
    2. В разделе Схема владения import_teams выберите JSON в качестве источника данных на вкладке Вход.
    3. Установите данные, содержащие команды для импорта {{ result("run_javascript_1") }}— это результат run_javascript.
    4. Выберите настройки импорта . Импорт команды из JSON не может быть отменен. Однако вы можете выборочно импортировать и защищать изменения в ранее импортированной информации, выбрав один из следующих вариантов.
      • Import new teams and skip existing teams гарантирует, что для импортируемых идентификаторов команд любая информация о командах, уже сохраненная в АппОптима, не будет перезаписана. Эта опция позволяет обслуживать команды и планировать запуски импорта команд. Эта опция полезна, когда вы ранее импортировали команды, а затем изменили импортированную информацию в АппОптима. В таких случаях вы не хотите, чтобы последующие запуски import_teams перезаписывали вашу текущую информацию.
      • Чтобы импортировать команды с нуля, выберите Import new teams and owerwrite existing. Для импортируемых идентификаторов команд эта опция перезаписывает любую информацию о команде, которая уже существует в АппОптима.

get_owners

Предварительные условия: вы создали команды владения в АппОптима и назначили их отслеживаемым объектам.

Действие get_owners позволяет вам извлекать связанные команды владения, включенные в метаданные указанных объектов. Вы можете определить источник, из которого вы хотите запросить владельцев. И ID объекта, и ID команды могут использоваться по отдельности или в комбинации.

  1. Выберите ID объектов, либо введя ссылку на выражение Jinja , либо добавив несколько ID объектов, разделив их запятой , или точкой с запятой ;. Это действие принимает ID объектов в качестве входных данных, но также может вывести ID объекта на основе предыдущего действия рабочего процесса.
  2. Выберите команду из списка ID команды или введите ссылку на выражение Jinja . Это действие принимает команду в качестве входных данных, но также может вывести команду на основе предыдущего действия рабочего процесса.
  3. В Фильтр владения выберите владение на основе обязанностей, содержащихся в определениях команды в Фильтр владельцев по ответственности . По умолчанию фильтр не применяется.

268.png

Пример создания автоматизированного рабочего процесса

Использование владения в рабочих процессах лучше всего иллюстрируется в Send logs to the owner of an entity в Automation Workflow Creator Sample. Вы можете сохранять иллюстрации в Automation Workflow Creator Sample как Notebooks, что позволяет просматривать подробные инструкции и запускать фрагменты кода для образцов рабочих процессов.

Вы можете использовать Automation Workflow Creator Sample, чтобы ознакомиться с использованием готовых действий владения в Workflows.

  1. Перейти к примеру Automation Workflow Creator. 269.png
  2. Прокрутите страницу до пункта Send logs to the owner of an entity и выберите Choose warkflow .
  3. Сохраните иллюстрацию в новом или существующем Notebook и выберите Add . 270.png Теперь ваше подробное руководство доступно в Notebooks с подробными инструкциями, примерами кода, которые вы можете запустить, и ссылками на пример рабочего процесса. 272.png
  4. Прокрутите страницу и выберите ссылку на пример рабочего процесса Примеры автоматизации: целевые уведомления, который вы можете изменить в соответствии со своими целями. 273.png 274.png

Шаги обучения и пример рабочего процесса

В этом разделе представлен контекст и проводится руководство по руководству Владения и пример рабочего процесса, установленные выше . Руководство сохранено в Notebooks  , а пример рабочего процесса сохранен в Workflows  .

  • Шаг 1: Назначьте владение хосту. В качестве предварительного условия вам необходимо настроить владение и назначить команду хосту в вашей среде. Подробнее о доступных методах читайте в разделе Назначение владельцев объектов. Обратите внимание, что вы можете применить тег для владения непосредственно на странице обзора хоста — выберите Владельцы в верхней части страницы, а затем выберите Добавить тег владения. 275.png
  • Шаг 2: Смоделируйте мероприятие-организатора. В качестве вспомогательного средства для руководства этот шаг имитирует событие хоста типа Пользовательская информация ; в реальном сценарии хост столкнется с событием или проблемой, которая запускает рабочий процесс. В предоставленном примере кода вставьте идентификатор хоста, как показано ниже, и выберите Запустить код . ID хоста можно найти в URL-адресе страницы обзора хоста. 276.png Событие можно увидеть на карточке События. 277.png
  • Шаг 3: Извлечение событий; настройка триггера событий рабочего процесса. На третьем этапе руководства ID хоста принимается в качестве входных данных для выполнения DQL-запроса, который извлекает события хоста указанного типа CUSTOM_INFO. Это соответствует первой задаче в Automation Samples: Targeted Notifications sample workflow , которая устанавливает триггер на основе событий для рабочего процесса. Вставьте ID хоста, как показано, и выберите Query events . На изображении ниже показаны выходные данные задачи и сведения о самом последнем событии. 278.png
  • Шаг 4: Извлеките логи хоста. Этот шаг руководства соответствует второй задаче примера рабочего процесса, в котором действие get_logs извлекает последние 10 логов для хоста. Вам необходимо указать ID хоста для запуска примера кода в руководстве. Однако рабочий процесс использует код {{ event()["dt.entity.host"] }} для извлечения логов для хоста, уже определенного в триггере рабочего процесса.
  • Шаг 5: Получите информацию о владельце хоста (действие get_owners). В этом шаге описываются действия get_owners в примере рабочего процесса Примеры автоматизации: целевые уведомления. get_owners требует ID объекта в качестве входных данных для извлечения информации о связанной команде владения. Однако в образце рабочего процесса get_owners использует код {{ event()["dt.entity.host"] }} для извлечения команд для хоста, уже определенного в триггере рабочего процесса. 279.png
  • Шаг 6: Запустите пример рабочего процесса. Прежде чем выбрать Run для сохраненного примера рабочего процесса, выполните шаг 2 руководства несколько раз, чтобы смоделировать события хоста. Когда вы выполнили свой рабочий процесс, успешные задачи подсвечиваются зеленым цветом. Выберите каждое действие владения в представлении выполнения, чтобы проверить его вывод. get_owners возвращает информацию о команде вместе с контактными данными, сгруппированными по типу контакта в формате JSON на вкладке Executions. 280.png
  • Шаг 7: Настройте действие Slack для целевых уведомлений. Вы можете расширить пример рабочего процесса, интегрировав его со Slack for Workflows для отправки целевых уведомлений. Аналогично, если вы извлекаете контактную информацию Jira для команды владения, вы можете интегрировать его с Jira for Workflows для создания задач.