Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Средства 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 позволяют научить агенту новые возможности. Опишите необходимые данные, создайте код, протестируйте его и разверните. Затем агент может получить доступ к системам и применить логику, которая не была возможна раньше.
Созданный код соответствует согласованному шаблону:
- Функция
main(), принимаюющая типизированные параметры. - JSON-сериализуемые возвращаемые значения.
- Описательные докстринги, объясняющие логику.
Перед созданием средства проверьте его с помощью реальных входных данных на игровой площадке. Введите значения параметров, выберите "Тест" и просмотрите фактические результаты, а не только проверку синтаксиса.
После тестирования средства нажмите кнопку "Создать". Агент может немедленно использовать его без перезапуска и без конвейера развертывания.
Средства 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.