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. Обзор различных состояний доступен здесь.
Созданный тикет будет выглядеть следующим образом: