Статьи
Обучающие материалы
Интерактивные руководства
Автоматическое управление инцидентами с помощью Jira и Statuspage
![Фотография: Кев Зеттлер](https://wac-cdn.atlassian.com/dam/jcr:09c4d11b-0f74-4dcd-aeba-28b5467d8a31/Headshot-Kev%20Zettler@2x.png?cdnVersion=2569)
Кев Зеттлер
Специалист по комплексной веб-разработке, DevOps
Узнайте, как использовать правила автоматизации Jira для автоматической синхронизации Statuspage с задачами Jira.
Время
5 минут на прочтение.
Аудитория
Вы опытный пользователь Jira Software с аккаунтом Statuspage.
Обязательные условия
Вам понадобится активный проект Jira с настроенным пользовательским типом заданий Incident (Инцидент) и пользовательским полем Incident ID (Идентификатор инцидента). Начните работу с Jira здесь.
Вам понадобится аккаунт Statuspage с доступом к API, а также ключ API и код страницы в Statuspage для настройки следующих правил автоматизации. Чтобы найти ключи API Statuspage, ознакомьтесь с руководством по API Statuspage. Начните работу со Statuspage здесь.
Шаг 1. Добавьте автоматизацию
Нажмите кнопку Add automation (Добавить автоматизацию) и выберите вариант Issue (Задача).
![Нажмите: Add automation (Добавить автоматизацию); выберите: Issue (Задача)](https://wac-cdn.atlassian.com/dam/jcr:46251e2e-cb63-4cab-bdc4-18c61fc0eac4/image14.png?cdnVersion=2569)
Найдите и выберите пункт Issue created (Создана задача).
![Новый триггер. Триггеры запускают выполнение правила. Триггеры могут реагировать на события или запускаться по расписанию.](https://wac-cdn.atlassian.com/dam/jcr:a0b8a30f-9d03-487a-8e1e-7c1f042805d7/image13.png?cdnVersion=2569)
Нажмите кнопку Save (Сохранить), чтобы продолжить.
![Создана задача. Правило запускается при создании задачи. Этот триггер не требует настройки.](https://wac-cdn.atlassian.com/dam/jcr:c698d5cd-8e5f-4b51-87ff-2d902945797e/image4.png?cdnVersion=2569)
Шаг 2. Создайте новое условие
Далее найдите и выберите пункт Issue fields condition (Условие «Поля задачи»).
![Выберите Issue fields condition (Условие «Поля задачи») в разделе New condition (Новое условие). Это условие проверяет, соответствует ли поле задачи заданным критериям.](https://wac-cdn.atlassian.com/dam/jcr:aea27c65-41d5-4fb3-bf6f-3d8bd8a884a5/image6.png?cdnVersion=2569)
Используйте вариант Issue fields condition (Условие «Поля задачи») для проверки соответствия типа задачи значению Incident (Инцидент) и выполнения необходимых действий. Настройте Issue fields condition (Условие «Поля задачи») таким образом, чтобы поле Issue Type (Тип задачи) было равно значению Incident (Инцидент). Нажмите Save (Сохранить), чтобы продолжить.
![Используйте вариант Issue fields condition (Условие «Поля задачи») для проверки соответствия типа задачи значению Incident (Инцидент) и выполнения необходимых действий. Настройте Issue fields condition (Условие «Поля задачи») таким образом, чтобы поле Issue Type (Тип задачи) было равно значению Incident (Инцидент). Нажмите Save (Сохранить), чтобы продолжить.](https://wac-cdn.atlassian.com/dam/jcr:fece3379-4564-48e2-aa1a-e4cb672ed064/image12.png?cdnVersion=2569)
Шаг 3. Отправьте веб-запрос
Выберите Send web request (Отправить веб-запрос), чтобы обновить Statuspage.
![Новое действие. Выберите Send web request (Отправить веб-запрос)](https://wac-cdn.atlassian.com/dam/jcr:b8a3f0e8-4520-449c-8bea-a905b1cb49b7/image8.png?cdnVersion=2569)
Для настройки действия Send web request (Отправить веб-запрос) вам потребуется ключ API и код страницы в Statuspage. Эти значения можно найти в документации по Statuspage. Send web request (Отправить веб-запрос) — это расширенное действие, имеющее конфиденциальные входные значения. Далее в руководстве оно будет использовано в дополнительных правилах с повторением этой конфигурации.
В поле Webhook URL (URL-адрес веб-хука) укажите URL-адрес для конечной точки с инцидентами Statuspage:
https://api.StatusPage.io/v1/pages/your-page-code/incidents
Замените «your-page-code» на код страницы Statuspage. Заполните два поля в разделе заголовков: укажите Authorization:OAuth и ключ API.
Установите для параметра HTTP Method (HTTP-метод) значение POST. Для параметра Webhook body (Тело веб-хука) укажите Custom Data (Пользовательские данные).
Обязательно установите флажок Wait for Response (Ожидать ответа), так как значения из ответа на веб-запрос будут использоваться в дополнительных компонентах.
Поле Custom Data (Пользовательские данные) содержит код, который определяет полезную нагрузку инцидента для API в Statuspage. Интеллектуальные значения в коде позволяют извлечь описание задачи и добавить его к полезной нагрузке. На следующем снимке экрана показана завершенная конфигурация действия Send web request (Отправить веб-запрос). Нажмите Save (Сохранить), чтобы продолжить.
![Отправить веб-запрос](https://wac-cdn.atlassian.com/dam/jcr:f12745fa-8002-4306-881c-0240a401200b/image2.png?cdnVersion=2569)
Шаг 4. Создайте действие Edit Issue (Редактировать задачу)
Наконец, найдите и выберите действие Edit Issue (Редактировать задачу).
![New action (Новое действие): Edit issue (Редактировать задачу)](https://wac-cdn.atlassian.com/dam/jcr:3d94e5b1-7c25-4ef5-b724-5997bc9543bc/image10.png?cdnVersion=2569)
Действие Edit Issue (Редактировать задачу) извлекает идентификатор инцидента из запроса Statuspage и сохраняет его в пользовательском поле Incident ID (Идентификатор инцидента). Извлечение идентификатора инцидента выполняется с помощью интеллектуальных значений. На следующем снимке экрана показана настройка компонента Edit Issue (Редактировать задачу).
![Редактировать задачу. Укажите значения для полей задачи](https://wac-cdn.atlassian.com/dam/jcr:0b548bf7-28ed-492c-bf80-2c532e43926b/image7.png?cdnVersion=2569)
На следующем снимке экрана показано окончательное описание правила.
![Окончательное описание правила](https://wac-cdn.atlassian.com/dam/jcr:516c38ed-3d80-48d9-950d-6cf17f90363f/image5.png?cdnVersion=2569)
Правило готово. Укажите для него название и нажмите кнопку Turn it on (Включить). Описанные далее автоматизации будут созданы на основе данных этого правила.
Обновление Statuspage при комментировании задачи
Правило запускается при комментировании задачи с типом «Инцидент». В Statuspage отправляется веб-запрос, который добавляет содержимое комментария в соответствующий инцидент. Компоненты правила описаны на следующем изображении.
![Комментарий Statuspage к инциденту](https://wac-cdn.atlassian.com/dam/jcr:636b4110-d581-48f6-9c30-e2d4baea8cfe/image9.png?cdnVersion=2569)
В этом правиле мы снова видим такой компонент, как действие Send web request (Отправить веб-запрос). Оно с некоторыми изменениями было скопировано из предыдущего правила.
Значение поля Webhook URL (URL-адрес веб-хука) было дополнено строкой «/{{issue.incident_id}}». Для извлечения из задачи значения пользовательского поля Incident ID (Идентификатор инцидента) и его передачи в Statuspage в качестве целевого объекта веб-запроса используются интеллектуальные значения.
Теперь в поле HTTP method (HTTP-метод) установлено значение PATCH вместо POST. Это означает, что Statuspage обновит существующий инцидент вместо создания нового.
В поле Custom data (Пользовательские данные) добавлен код с интеллектуальными значениями. С их помощью тело комментария будет извлечено из задачи и добавлено в тело инцидента.
![Комментарий Statuspage к инциденту](https://wac-cdn.atlassian.com/dam/jcr:7614fdf7-e46f-4567-ad24-541c40794ef3/image3.png?cdnVersion=2569)
![Отправить веб-запрос](https://wac-cdn.atlassian.com/dam/jcr:f4963cd3-03df-499c-ac41-f8ebd61c6339/image11.png?cdnVersion=2569)
Закрытие инцидента Statuspage при переходе задачи в статус «Готово»
Последнее правило связывает все воедино. Оно сообщает Statuspage о разрешении инцидента при переходе соответствующей задачи Jira в статус «Готово». Описание правила показано на следующем изображении.
![Комментарий Statuspage к инциденту](https://wac-cdn.atlassian.com/dam/jcr:7614fdf7-e46f-4567-ad24-541c40794ef3/image3.png?cdnVersion=2569)
Компонент веб-запроса снова был скопирован из предыдущих правил и изменен.
![Отправить веб-запрос](https://wac-cdn.atlassian.com/dam/jcr:f4963cd3-03df-499c-ac41-f8ebd61c6339/image11.png?cdnVersion=2569)
Поле Custom data (Пользовательские данные) было изменено таким образом, чтобы инцидент перешел в статус «Решено». Это единственное отличие от предыдущего правила для комментариев.
Правила готовы к использованию. Вы можете их протестировать: создайте задачи с типом «Инцидент» и выполните триггерные действия. Отслеживать поведение правил можно в журнале автоматизации. В нем ведется регистрация правил и содержатся сведения об их поведении. Описанные в руководстве правила автоматизации служат отличными примерами расширенных правил с использованием веб-запросов к API.
Ознакомьтесь с сотнями других примеров в нашей библиотеке шаблонов автоматизации.
Поделитесь этой статьей
Следующая тема
Рекомендуемые статьи
Добавьте эти ресурсы в закладки, чтобы изучить типы команд DevOps или получать регулярные обновления по DevOps в Atlassian.
![Рисунок: DevOps](https://wac-cdn.atlassian.com/dam/jcr:bd9d8b2c-ca36-444f-8595-719cb1990e64/Devops-community.png?cdnVersion=2569)
Сообщество DevOps
![Рисунок: DevOps](https://wac-cdn.atlassian.com/dam/jcr:297108ea-d232-4368-af51-b53af230c4fe/Simulation-workshop.png?cdnVersion=2569)
Образовательные программы DevOps
![Рисунок: карта](https://wac-cdn.atlassian.com/dam/jcr:25f6330a-4191-408f-a4e5-2e24bfba67b4/Maturity-model.png?cdnVersion=2569)