Partager via


Outils Python dans Azure SRE Agent

Les outils Python étendent votre agent Azure SRE au-delà des fonctionnalités Azure intégrées. Créez des outils personnalisés qui se connectent aux API internes, aux bases de données locales, aux plateformes multiclouds et aux systèmes propriétaires à l’aide du code Python. Décrivez ce dont vous avez besoin en anglais brut, collez des scripts existants ou encapsulez les points de terminaison HTTP, puis testez et déployez sans redémarrage.

Conseil / Astuce

  • Étendez votre agent pour atteindre des systèmes qu'il ne prend pas en charge nativement.
  • Connectez-vous aux API internes, aux bases de données locales et aux plateformes multiclouds.
  • Encoder une logique métier personnalisée (calculs SLA, modèles de coût, règles de conformité).

La problématique

Votre agent dispose d’outils intégrés puissants pour Azure, notamment les requêtes Kusto, Azure Monitor et les opérations ARM. Mais votre organisation ne vit pas entièrement dans Azure :

  • Systèmes internes : bases de données CMDB, systèmes de ticket personnalisés et API internes que votre organisation utilise uniquement.
  • Multicloud : tableaux de bord Datadog, journaux Splunk et métriques AWS CloudWatch aux côtés d’Azure.
  • Infrastructure héritée : bases de données locales, protocoles propriétaires et systèmes sans API modernes.
  • Logique métier personnalisée : calculs sla spécifiques à vos contrats, formules d’allocation des coûts et modèles de planification de capacité.

L’agent peut diagnostiquer les problèmes Azure, mais il ne peut pas atteindre vos systèmes internes ni appliquer la logique unique de votre organisation, sauf si vous l’étendez.

Fonctionnement des outils Python

Les outils Python vous permettent d’enseigner à votre agent de nouvelles fonctionnalités. Décrivez ce dont vous avez besoin, générez le code, testez-le et déployez-le. Votre agent peut ensuite atteindre des systèmes et appliquer une logique qui n’était pas possible avant.

Capture d’écran de la boîte de dialogue outil Python.

Le code généré suit un modèle cohérent :

  • Fonction main() qui accepte les paramètres typés.
  • Valeurs de retour sérialisables en JSON.
  • Docstrings descriptives qui expliquent la logique.

Avant de créer l’outil, testez-le avec des entrées réelles dans le terrain de jeu. Entrez des valeurs de paramètre, sélectionnez Test et consultez les résultats réels, et pas seulement la validation de syntaxe.

Capture d’écran du terrain de jeu de test montrant la réussite de l’exécution avec le résultat du calcul sla.

Après avoir testé l’outil, sélectionnez Créer un outil. Votre agent peut l’utiliser immédiatement sans redémarrage et sans pipeline de déploiement.

Outils Python et connecteurs MCP

Pour les plateformes tierces, vous avez deux options.

Approche Idéal pour Exemples
Connecteurs MCP Plateformes populaires avec des API standard Datadog, Splunk, ServiceNow, GitHub
Outils Python Systèmes internes, logique personnalisée, plateformes sans MCP Votre CMDB, interfaces de programmation d'applications (API) propriétaires, calculs personnalisés

Utilisez des connecteurs MCP lorsqu’un connecteur existe pour votre plateforme. MCP fournit des schémas structurés, une gestion de l’authentification et un comportement cohérent.

Utilisez les outils Python lorsque vous devez atteindre des systèmes internes, encoder une logique métier personnalisée ou vous connecter à des plateformes sans prise en charge de MCP.

Ce qui rend cela différent

Le tableau suivant compare les fonctionnalités de l’agent avec et sans outils Python.

Sans outils Python Avec les outils Python
L’agent ne peut utiliser que des fonctionnalités intégrées L'agent peut atteindre n'importe quel système auquel Python peut accéder
Les API internes nécessitent des flux de travail distincts Les systèmes internes deviennent des outils d’agent
La logique personnalisée réside dans des scripts externes Les règles d’entreprise s’exécutent dans les conversations d’agent
Les systèmes locaux sont déconnectés de l’agent Les environnements hybrides sont entièrement accessibles

Les outils Python transforment votre agent d’un assistant natif Azure en une plateforme extensible qui fonctionne avec l’ensemble de votre infrastructure.

Avant et après

Avant Après
« Notre CMDB est local, l’agent ne peut pas le voir » Outil Python avec accès réseau qui interroge les systèmes internes
« Nous avons des formules SLA personnalisées que personne n’a automatisé » Encoder vos formules en tant qu’outil ; l’agent les applique automatiquement
« Les rapports de conformité ont besoin d’une mise en forme PDF spécifique » Générer des rapports avec ReportLab, servis via l’agent

Prerequisites

  • Accès du Builder à un agent Azure SRE.
  • Pour les points de terminaison HTTP : URL et informations d’identification d’authentification pour vos systèmes cibles.

Créer un outil Python

Vous pouvez créer des outils Python à l’aide de trois approches.

Approche Vous fournissez Ce que fait l’agent Idéal pour
Décrire en anglais brut Calculer le SLA à partir de la disponibilité et du temps d'arrêt Génère du code Python complet Logique personnalisée rapide, aucun codage n’est nécessaire
Coller du code existant Votre fonction Python Encapsule-le en tant qu’outil Migration de scripts existants, logique complexe
Appeler des points de terminaison HTTP URL et authentification du point de terminaison Appelle votre API via HTTP Azure Functions, Lambda, API internes, webhooks

Option 1 : Autoriser l’IA à écrire le code

Décrivez ce dont vous avez besoin dans la boîte de dialogue et sélectionnez Générer. L’IA crée une fonction Python opérationnelle avec des paramètres typés, une gestion des erreurs et des docstrings.

Vous décrivez : « Calculer la conformité au SLA des minutes de fonctionnement et de temps d’arrêt, et indiquer s'il atteint le seuil de 99,9% »

L’agent génère : Une fonction complète main() prête à être testée et déployée.

Option 2 : Apporter votre propre code

Collez Python existant dans l’onglet Code . La fonction doit suivre ce modèle :

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

Option 3 : Appeler des points de terminaison HTTP

Encapsulez tout point de terminaison HTTP (Azure Functions, AWS Lambda, API internes ou webhooks) en tant qu’outil 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()

Note

Les outils Python disposent d’un accès réseau sortant. Vous pouvez appeler n’importe quel point de terminaison HTTP que votre réseau autorise. Pour les points de terminaison authentifiés, incluez des clés d’API ou des jetons dans les en-têtes ou les paramètres de requête.

Exemples de scénarios

Les exemples suivants illustrent des cas d’usage courants pour les outils Python.

Requête CMDB interne :

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()

Calcul du contrat SLA personnalisé :

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}

Génération de rapports de conformité :

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"}

Vérifier que votre outil fonctionne

Après avoir créé l’outil, testez-le dans une nouvelle conversation :

Calculate SLA for 43185 minutes uptime and 15 minutes downtime

Votre agent doit reconnaître que la tâche correspond à votre outil et l’appeler automatiquement.

Environnement d’exécution

Le tableau suivant décrit l’environnement d’exécution pour les outils Python.

Propriété Valeur
Délai d'expiration 5 à 900 secondes (par défaut : 120)
Isolation Conteneur frais à chaque exécution
Système de fichiers /mnt/data pour les fichiers temporaires
Réseau Connectivité sortante activée
Packages Plus de 700 préinstallés (pandas, requests, azure-identity, reportlab, et plus encore)
État Aucune persistance entre les appels

Authentification pour les ressources Azure

Les outils Python peuvent s’authentifier auprès des ressources Azure à l’aide d’une identité managée avec des étendues prédéfinies.

Étendue Access
ARM Azure Resource Manager (management.azure.com)
Coffre-fort de clés Secrets, clés, certificats (vault.azure.net)
Storage Stockage Blob, File d’attente, Table (storage.azure.com)

Activez l’authentification sous l’onglet Identité lors de la création d’un outil.

Limites

  • Aucun état persistant : chaque exécution démarre à nouveau. Stockez les résultats en externe si nécessaire.
  • Délai d’expiration maximal : 900 secondes (15 minutes) pour les opérations de longue durée.
  • Aucun GPU : environnement d’exécution du processeur uniquement.
  • Sortie JSON requise : les valeurs de retour doivent être sérialisables JSON.

Étape suivante