Поделиться через


Средства Python в агенте Azure SRE

Средства Python расширяют агент Azure SRE за рамки встроенных возможностей Azure. Создайте пользовательские средства, которые подключаются к внутренним API, локальным базам данных, многооблачными платформам и собственным системам с помощью кода Python. Описать, что вам нужно на обычном английском языке, вставить существующие скрипты или упаковать конечные точки HTTP, а затем протестировать и развернуть без перезапуска.

Подсказка

  • Расширьте возможности вашего агента для доступа к системам, для которых у него нет встроенной поддержки.
  • Подключитесь к внутренним API, локальным базам данных и многооблачными платформам.
  • Кодирование пользовательской бизнес-логики (вычисления SLA, модели затрат, правила соответствия требованиям).

Проблема

Агент имеет мощные встроенные инструменты для Azure, включая запросы Kusto, Azure Monitor и операции ARM. Но ваша организация не живет полностью в Azure:

  • Внутренние системы: базы данных CMDB, пользовательские системы билетов и внутренние API, которые используются только вашей организацией.
  • Multicloud: панели мониторинга Datadog, журналы Splunk и метрики AWS CloudWatch вместе с Azure.
  • Устаревшая инфраструктура: локальные базы данных, собственные протоколы и системы без современных API.
  • Настраиваемая бизнес-логика: вычисления SLA, специфичные для ваших контрактов, формулы распределения затрат и модели планирования мощности.

Агент может диагностировать проблемы Azure, но он не может достичь внутренних систем или применить уникальную логику вашей организации, если вы не расширяете ее.

Как работают средства Python

Средства Python позволяют научить агенту новые возможности. Опишите необходимые данные, создайте код, протестируйте его и разверните. Затем агент может получить доступ к системам и применить логику, которая не была возможна раньше.

Снимок экрана: диалоговое окно средства Python.

Созданный код соответствует согласованному шаблону:

  • Функция main() , принимаюющая типизированные параметры.
  • JSON-сериализуемые возвращаемые значения.
  • Описательные докстринги, объясняющие логику.

Перед созданием средства проверьте его с помощью реальных входных данных на игровой площадке. Введите значения параметров, выберите "Тест" и просмотрите фактические результаты, а не только проверку синтаксиса.

Снимок экрана: тестовая площадка, показывающая успешное выполнение с результатом вычисления SLA.

После тестирования средства нажмите кнопку "Создать". Агент может немедленно использовать его без перезапуска и без конвейера развертывания.

Средства Python и соединители MCP

Для сторонних платформ у вас есть два варианта.

Подход лучше всего подходит для Примеры
Соединители MCP Популярные платформы со стандартными API Datadog, Splunk, ServiceNow, GitHub
Средства Python Внутренние системы, пользовательская логика, платформы без MCP Ваша CMDB, проприетарные API, пользовательские вычисления

Используйте соединители MCP, если соединитель существует для вашей платформы. MCP предоставляет структурированные схемы, управление проверкой подлинности и согласованное поведение.

Используйте средства Python, если необходимо достичь внутренних систем, кодировать пользовательскую бизнес-логику или подключаться к платформам без поддержки MCP.

Что делает это разными

В следующей таблице сравниваются возможности агента с инструментами Python и без них.

Без инструментов Python С помощью средств Python
Агент может использовать только встроенные возможности Агент совместим с любой системой, которую может вызвать Python.
Для внутренних API требуются отдельные рабочие процессы Внутренние системы становятся средствами агента
Пользовательская логика живет во внешних скриптах Бизнес-правила выполняются в процессе общения агента
Локальные системы отключены от агента Гибридные среды являются полностью доступными

Средства Python превратят вашего родного агента Azure в расширяемую платформу, которая работает со всей вашей инфраструктурой.

До и после

До После
"Наш CMDB находится в локальной среде, агент не может видеть его" Утилита Python с доступом к сети запрашивает внутренние системы
У нас есть пользовательские формулы SLA, которые никто не автоматизировал. Зашифруйте свои формулы как инструмент; агент будет применять их автоматически.
"Отчеты о соответствии нуждаются в определенном форматировании PDF" Создание отчетов с помощью ReportLab, обслуживаемого агентом

Необходимые условия

  • Доступ построителя к агенту Azure SRE.
  • Для конечных точек HTTP: URL-адреса и учетные данные для целевых систем.

Создание средства Python

Средства Python можно создать с помощью трех подходов.

Подход Вы предоставляете Агент выполняет лучше всего подходит для
Описание на обычном английском языке "Вычислить соглашение об уровне обслуживания по времени безотказной работы и времени простоя" Создает полный код Python Быстрая пользовательская логика, код не требуется
Вставка существующего кода Ваша функция на Питоне Обертывает его как инструмент Перенос существующих скриптов, сложная логика
Вызов конечных точек HTTP URL-адрес конечной точки и проверка подлинности Вызывает API через HTTP Функции Azure, Lambda, внутренние API, вебхуки

Вариант 1. Разрешить ИИ писать код

Опишите, что вам нужно в диалоговом окне, и нажмите кнопку "Создать". ИИ создает функционирующую функцию Python с типизированными параметрами, обработкой ошибок и докстрингами.

Вы описываете: "Вычислить соответствие SLA на основе минут безотказной работы и времени простоя, возвращается ли оно соответствует порогу 99,9%".

Агент создает: Полная main() функция, готовая к тестированию и развертыванию.

Вариант 2. Создание собственного кода

Вставьте существующий Python на вкладку "Код ". Эта функция должна соответствовать следующему шаблону:

def main(param1: str, param2: int) -> dict:
    # Your logic here
    return {"result": "value"}

Вариант 3. Вызов конечных точек HTTP

Оберните любую конечную точку HTTP (Функции Azure, AWS Lambda, внутренние API или веб-перехватчики) в качестве инструмента Python.

def main(input_data: str) -> dict:
    import requests

    # Azure Function with function key
    response = requests.post(
        "https://<FUNCTION_APP_NAME>.azurewebsites.net/api/<ENDPOINT>?code=<FUNCTION_KEY>",
        json={"data": input_data}
    )

    # Or internal API with bearer token
    # response = requests.get(
    #     "https://internal-api.corp/resource",
    #     headers={"Authorization": "Bearer <API_TOKEN>"}
    # )

    return response.json()

Замечание

Средства Python имеют исходящий сетевой доступ. Вы можете вызвать любую конечную точку HTTP, разрешенную сетью. Для конечных точек, прошедших проверку подлинности, включите ключи API или маркеры в заголовки или параметры запроса.

Пример сценариев

В следующих примерах показаны распространенные варианты использования средств Python.

Внутренний запрос CMDB:

def main(server_name: str) -> dict:
    """Query internal CMDB for server configuration."""
    import requests
    response = requests.get(f"https://cmdb.internal.corp/api/servers/{server_name}")
    return response.json()

Пользовательское вычисление SLA:

def main(uptime_minutes: int, downtime_minutes: int) -> dict:
    """Calculate SLA using your organization's formula."""
    total = uptime_minutes + downtime_minutes
    sla = (uptime_minutes / total) * 100 if total > 0 else 100.0
    return {"sla_percent": round(sla, 4), "meets_target": sla >= 99.9}

Создание отчета о соответствии:

def main(incidents: list, month: str) -> dict:
    """Generate PDF compliance report."""
    from reportlab.platypus import SimpleDocTemplate
    doc = SimpleDocTemplate(f"/mnt/data/compliance-{month}.pdf")
    # Build report...
    return {"report_path": f"/api/files/compliance-{month}.pdf"}

Убедитесь, что ваше средство работает

После создания средства проверьте его в новом чате:

Calculate SLA for 43185 minutes uptime and 15 minutes downtime

Агент должен распознать, что задача соответствует вашему инструменту и автоматически вызывает ее.

Среда выполнения

В следующей таблице описывается среда выполнения для средств Python.

Недвижимость Ценность
Тайм-аут От 5 до 900 секунд (по умолчанию: 120)
Изоляция Свежий контейнер для выполнения
Файловая система /mnt/data для временных файлов
Network Включено исходящее подключение
Пакеты 700+ предустановленных (pandas, requests, azure-identity, reportlab и т. д.)
State Отсутствие сохраняемости между вызовами

Проверка подлинности для ресурсов Azure

Инструменты Python могут аутентифицироваться к ресурсам Azure с помощью управляемого удостоверения с предустановленными областями.

Объем Доступ
ARM Azure Resource Manager (management.azure.com)
Хранилище ключей Секреты, ключи, сертификаты (vault.azure.net)
Хранение BLOB-объект, очередь, хранилище таблиц (storage.azure.com)

Включите проверку подлинности на вкладке "Удостоверение " при создании средства.

Ограничения

  • Нет постоянного состояния: каждое выполнение начинается сначала. При необходимости сохраняйте результаты внешне.
  • Максимальное время ожидания: 900 секунд (15 минут) для длительных операций.
  • Нет GPU: среда выполнения только ЦП.
  • Выходные данные JSON: возвращаемые значения должны быть сериализуемыми в формате JSON.

Следующий шаг