Создание тикета Jira при сбое задачи Prefect

Prefect предлагает отличный пользовательский интерфейс для мониторинга и управления вашими запусками Prefect. И нет ничего лучше, чем открыть утром свой ноутбук и увидеть, что он весь зеленый. Однако, к сожалению, это не всегда так, и, хотя это зависит от рабочих процессов вашей организации, обычно вам приходится создавать тикет ошибки в Jira, прежде чем пытаться решить любые проблемы в ваших запусках. Давайте автоматизируем это, интегрировав jira_notifier в наши задачи.

Предварительные условия

Во-первых, нам нужно создать токен API Jira. Вы можете сделать это, перейдя по этому URL, войдя в систему, а затем нажав кнопку Create API token. Запишите токен и сохраните его в надежном месте, он нам понадобится через секунду.

Далее нам нужно передать токен, который мы только что создали, пользователя Jira и URL сервера Jira в Prefect. Один из простых способов сделать это — добавить следующее в конфигурационный файл Prefect (~/.prefect/config.toml):

[context.secrets]
JIRASECRETS.JIRATOKEN = "thetokenyoucreated"
JIRASECRETS.JIRAUSER = "xxx@example.com"
JIRASECRETS.JIRASERVER = "https://xxx.atlassian.net"
Войти в полноэкранный режим Выйти из полноэкранного режима

Настройка задачи префекта

Теперь мы можем добавить jira_notifier в нашу задачу Prefect:

from prefect import Task
from prefect.utilities.notifications.jira_notification import jira_notifier
from prefect.engine.state import Failed

@task(
    name="jira_example_task",
    state_handlers=[
        jira_notifier(
            only_states=[Failed],
            options={"project": "DE", "issuetype": {"name": "Bug"}},
        )
    ],
)
def add(x, y):
    return x + y
Войти в полноэкранный режим Выйти из полноэкранного режима

Этот пример задачи создаст тикет ошибки Jira в проекте DE при неудачном запуске.
Следует помнить, что тип проблемы, который вы выбираете, должен быть доступен в проекте, в котором вы создаете проблему. Вы также можете изменить состояние, например, на Retrying, чтобы вместо этого создать тикет Jira Task. Обзор различных состояний доступен здесь.

Созданный тикет будет выглядеть следующим образом:

Оцените статью
devanswers.ru
Добавить комментарий