Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
L'agent SRE interprète de code vous permet d'exécuter du code Python et des commandes shell dans un environnement sandbox sécurisé et isolé. Utilisez l’interpréteur de code pour analyser les données, créer des visualisations, générer des rapports PDF et automatiser les opérations de fichier sans quitter la conversation de votre agent SRE.
Dans cet article, vous allez apprendre à :
- Exécuter du code Python pour analyser des données et créer des visualisations
- Exécuter des commandes shell pour les opérations de fichier
- Générer et télécharger des rapports PDF
- Travailler avec des fichiers dans l’environnement sandbox
Prerequisites
Pour créer un agent, vous devez accorder à votre agent les autorisations appropriées, configurer les paramètres appropriés et accorder l’accès aux ressources appropriées :
Compte Azure : vous avez besoin d’un compte Azure avec un abonnement actif. Si vous n’en avez pas déjà un, vous pouvez créer un compte gratuit.
Contexte de sécurité : vérifiez que votre compte d’utilisateur dispose des autorisations
Microsoft.Authorization/roleAssignments/writeen tant qu’administrateur de contrôle d’accès en fonction du rôle ou administrateur de l’accès utilisateur.Paramètres de pare-feu : ajoutez-le à la liste d’autorisation dans vos paramètres de pare-feu. Certains profils réseau peuvent bloquer l’accès au
*.azuresre.aidomaine par défaut.
Fonctionnement de l’interpréteur de code
L’interpréteur de code SRE Agent s’exécute dans une session Azure Container Apps isolée avec les caractéristiques suivantes :
- Aucun accès réseau : le bac à sable ne peut pas effectuer de requêtes HTTP ou HTTPS sortantes.
-
Pas de lancement de processus : les commandes comme
subprocessetos.systemsont bloquées. -
Aucune installation de package :
pip installetconda installne sont pas disponibles. -
Système de fichiers isolé : tous les fichiers doivent être enregistrés dans
/mnt/data/.
Ces restrictions garantissent que l’exécution du code est sécurisée et prévisible. Les bibliothèques de science des données courantes telles que pandas, matplotlib et seaborn sont préinstallées.
Prise en main de l’interpréteur de code
Les outils d’interpréteur de code sont automatiquement disponibles dans vos conversations de l’agent SRE. Demandez à l’agent d’effectuer des tâches à l’aide du langage naturel.
Exemples d’invites
Essayez ces suggestions pour commencer :
- « Analysez ces données CSV et créez un graphique montrant les incidents par catégorie. »
- « Générer un résumé PDF des incidents d’aujourd’hui . »
- « Analysez ce fichier JSON et extrayez les modèles d’erreur . »
- « Répertorier tous les fichiers de la session et afficher leurs tailles . »
Votre premier script Python
L’exemple suivant montre comment créer une visualisation :
import matplotlib.pyplot as plt
import numpy as np
# Generate sample data
categories = ['Critical', 'High', 'Medium', 'Low']
counts = [5, 12, 28, 45]
# Create bar chart
plt.figure(figsize=(10, 6))
plt.bar(categories, counts, color=['red', 'orange', 'yellow', 'green'])
plt.title('Incidents by Severity')
plt.xlabel('Severity Level')
plt.ylabel('Count')
plt.savefig('/mnt/data/incidents_by_severity.png', dpi=150)
Lorsque le code s’exécute correctement, l’agent retourne l’image incluse dans la conversation.
Scénarios
Analyser les données d’incident
Utilisez l’interpréteur de code pour transformer les données d’incident brutes en insights et visualisations actionnables.
Demandez à L’agent SRE de créer un fichier CSV de tous les incidents qui se sont produits au cours du dernier mois à l’aide de l’invite suivante :
Create a CSV file of all the incidents that occurred in the last month. Name the file `incidents.csv` and save it to `/mnt/data`.Utilisez Python pour analyser les modèles d’incident et identifier les tendances :
import pandas as pd # Load incident data df = pd.read_csv('/mnt/data/incidents.csv') # Calculate summary statistics summary = df.groupby('category').agg({ 'id': 'count', 'resolution_time': 'mean' }).rename(columns={'id': 'count', 'resolution_time': 'avg_resolution_hours'}) # Export results summary.to_csv('/mnt/data/incident_summary.csv') print(summary)
Créer des visualisations
Générez des graphiques pour communiquer des insights.
import matplotlib.pyplot as plt
import seaborn as sns
# Load data
df = pd.read_csv('/mnt/data/incidents.csv')
# Create visualization
plt.figure(figsize=(12, 6))
sns.barplot(data=df, x='category', y='count', palette='viridis')
plt.title('Incidents by Category')
plt.xticks(rotation=45)
plt.tight_layout()
plt.savefig('/mnt/data/category_chart.png', dpi=150)
Générer des rapports PDF
Créez des documents PDF mis en forme pour les parties prenantes.
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import letter
# Create PDF
c = canvas.Canvas('/mnt/data/weekly_report.pdf', pagesize=letter)
# Add content
c.setFont('Helvetica-Bold', 18)
c.drawString(72, 750, 'Weekly Incident Report')
c.setFont('Helvetica', 12)
c.drawString(72, 720, 'Period: January 10-17, 2026')
c.drawString(72, 700, 'Total incidents: 90')
c.drawString(72, 680, 'Critical incidents: 5')
c.drawString(72, 660, 'Average resolution time: 4.2 hours')
c.save()
L’agent retourne un lien de téléchargement pour le fichier PDF généré.
Traiter les fichiers logs
Recherchez et analysez les fichiers journaux à l’aide de commandes shell.
# Count error occurrences by type
grep -E "ERROR|WARN|FATAL" application.log | sort | uniq -c | sort -rn
# Find the most recent log entries
tail -100 application.log
Informations de référence sur l’outil
L’interpréteur de code fournit les outils suivants :
ExecutePythonCode
Exécute le code Python dans un bac à sable isolé.
| Paramètre | Type | Obligatoire | Descriptif |
|---|---|---|---|
pythonCode |
ficelle | Oui | Code Python à exécuter (jusqu’à 20 000 caractères) |
timeoutSeconds |
entier | Non | Délai d’expiration de l’exécution en secondes (valeur par défaut : 120, maximum : 900) |
Sortie : les images s’affichent en ligne sous forme de markdown. Les fichiers de données retournent sous forme de liens de téléchargement.
GénérerRapportPdf
Crée des documents PDF à partir du code Python.
| Paramètre | Type | Obligatoire | Descriptif |
|---|---|---|---|
pythonCode |
ficelle | Oui | Code Python qui crée un fichier PDF |
expectedOutputFilename |
ficelle | Oui | Chemin d’accès où le fichier PDF est enregistré (par exemple, report.pdf) |
saveAsFilename |
ficelle | Oui | Télécharger le nom de fichier (par exemple, daily_summary.pdf) |
timeoutSeconds |
entier | Non | Délai d’expiration de l’exécution en secondes (valeur par défaut : 180, maximum : 900) |
RunShellCommand (Exécuter une commande Shell)
Exécute des commandes shell dans la sandbox.
| Paramètre | Type | Obligatoire | Descriptif |
|---|---|---|---|
command |
ficelle | Oui | Commande Shell à exécuter |
explanation |
ficelle | Non | Description à consigner avec la commande |
isBackground |
boolean | Non | Doit être false (les travaux en arrière-plan ne sont pas pris en charge) |
timeoutSeconds |
entier | Non | Délai d’expiration de l’exécution (valeur par défaut : 120, max : 240) |
Note
Les commandes s’exécutent à partir de /mnt/data/. Utilisez des chemins d’accès relatifs et des commandes de chaîne en utilisant ; au lieu de &&.
Opérations de fichier
| Tool | Descriptif |
|---|---|
ReadSessionFile |
Lit le contenu d’un fichier à partir de /mnt/data/. |
SearchSessionFiles |
Recherche du texte dans des fichiers à l’aide de modèles grep-style. |
ListSessionFiles |
Répertorie tous les fichiers de la session avec des métadonnées. |
GetSessionFile |
Télécharge un fichier à partir de la session. |
UploadFileToSession |
Charge un fichier pour un traitement ultérieur. |
Types de fichiers pris en charge
- Images : PNG, JPG, GIF, SVG, WebP, BMP, TIFF, EPS
- Données : CSV, TSV, Excel, JSON, XML, YAML, HDF5, NetCDF, pickle
- Documents : PDF, HTML, Markdown, formats Office
- Code : Python, carnets Jupyter, R, SQL
- Archives : ZIP, TAR, GZ
Limites
Pour des raisons de sécurité, le système bloque les opérations suivantes :
| Catégorie | Opérations bloquées |
|---|---|
| Génération de processus |
subprocess
os.system
os.popen
os.spawn*
|
| Accès réseau | Requêtes HTTP/HTTPS sortantes |
| Installation de package |
pip install, conda install |
| Système de fichiers | Accès depuis l'extérieur /mnt/data/ |
Résoudre les problèmes liés à l’interpréteur de code
Échec de l’exécution du code
- Vérifiez que votre code n’utilise pas d’opérations bloquées telles que
subprocess, ou des appels réseau. - Vérifiez que tous les chemins d’accès aux fichiers pointent vers
/mnt/data/. - Vérifiez que votre code est inférieur à 20 000 caractères.
Les fichiers n’apparaissent pas dans la sortie
- Vérifiez que vous enregistrez des fichiers dans
/mnt/data/. - Permet
ListSessionFilesde vérifier la création de fichiers. - Vérifiez que l’extension de fichier est prise en charge.
Erreurs de délai d’expiration
- Augmentez le
timeoutSecondsparamètre (900 secondes maximum). - Optimisez votre code pour réduire le temps d’exécution.
- Fractionnez les opérations volumineuses en blocs plus petits.