Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Med kodtolken för SRE Agent kan du köra Python-kod- och gränssnittskommandon i en säker, isolerad sandbox-miljö. Använd kodtolkare för att analysera data, skapa visualiseringar, generera PDF-rapporter och automatisera filåtgärder utan att lämna SRE Agent-konversationen.
I den här artikeln lär du dig att:
- Köra Python-kod för att analysera data och skapa visualiseringar
- Köra gränssnittskommandon för filåtgärder
- Generera och ladda ned PDF-rapporter
- Arbeta med filer i sandbox-miljön
Förutsättningar
Om du vill skapa en agent måste du ge agenten rätt behörigheter, konfigurera rätt inställningar och ge åtkomst till rätt resurser:
Azure-konto: Du behöver ett Azure-konto med en aktiv prenumeration. Om du inte redan har ett konto kan du skapa ett konto kostnadsfritt.
Säkerhetskontext: Kontrollera att ditt användarkonto har behörighet som
Microsoft.Authorization/roleAssignments/writeantingen rollbaserad administratör för åtkomstkontroll eller administratör för användaråtkomst.Brandväggsinställningar: Lägg till
*.azuresre.aii listan över tillåtna i brandväggsinställningarna. Vissa nätverksprofiler kan blockera åtkomsten till*.azuresre.aidomänen som standard.
Så här fungerar kodtolkare
Kodtolkaren för SRE-agenten körs i en isolerad Azure Container Apps-session med följande egenskaper:
- Ingen nätverksåtkomst: Sandbox-miljön kan inte göra utgående HTTP- eller HTTPS-begäranden.
-
Ingen process skapning: Kommandon som
subprocessochos.systemblockeras. -
Ingen paketinstallation:
pip installochconda installär inte tillgängliga. -
Isolerat filsystem: Alla filer måste sparas i
/mnt/data/.
Dessa begränsningar säkerställer att kodkörningen är säker och förutsägbar. Vanliga datavetenskapsbibliotek som pandas, matplotlib och seaborn är förinstallerade.
Kom igång med kodtolkare
Kodtolkarverktyg är automatiskt tillgängliga i dina SRE Agent-konversationer. Be agenten att utföra uppgifter med hjälp av naturligt språk.
Exempeluppmaningar
Prova de här anvisningarna för att komma igång:
- "Analysera dessa CSV-data och skapa ett diagram som visar incidenter efter kategori."
- "Generera en PDF-sammanfattning av dagens incidenter."
- "Parsa den här JSON-filen och extrahera felmönstren."
- "Visa alla filer i sessionen och visa deras storlekar."
Ditt första Python-skript
I följande exempel visas hur du skapar en visualisering:
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)
När koden körs framgångsrikt returnerar agenten bilden direkt i konversationen.
Scenarier
Analysera incidentdata
Använd kodtolkare för att omvandla rådata för incidenter till användbara insikter och visualiseringar.
Be SRE-agenten att skapa en CSV-fil med alla incidenter som har inträffat under den senaste månaden med hjälp av följande uppmaning:
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`.Använd Python för att analysera incidentmönster och identifiera trender:
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)
Skapa visualiseringar
Generera diagram för att kommunicera insikter.
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)
Generera PDF-rapporter
Skapa formaterade PDF-dokument för intressenter.
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()
Agenten returnerar en nedladdningslänk för den genererade PDF-filen.
Bearbeta loggfiler
Sök och analysera loggfiler med hjälp av gränssnittskommandon.
# 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
Verktygsreferens
Kodtolkaren innehåller följande verktyg:
ExecutePythonCode
Kör Python-kod i en isolerad sandbox-miljö.
| Parameter | Typ | Krävs | Description |
|---|---|---|---|
pythonCode |
snöre | Yes | Python-kod som ska köras (upp till 20 000 tecken) |
timeoutSeconds |
integer | Nej | Timeout för exekvering i sekunder (standard: 120, max: 900) |
Utdata: Bilder visas direkt i markdown. Datafiler returneras som nedladdningslänkar.
GenereraPdfRapport
Skapar PDF-dokument från Python-kod.
| Parameter | Typ | Krävs | Description |
|---|---|---|---|
pythonCode |
snöre | Yes | Python-kod som skapar en PDF-fil |
expectedOutputFilename |
snöre | Yes | Sökväg där PDF-filen sparas (till exempel report.pdf) |
saveAsFilename |
snöre | Yes | Ladda ned filnamn (till exempel daily_summary.pdf) |
timeoutSeconds |
integer | Nej | Tidsgräns för exekvering i sekunder (standard: 180, max: 900) |
RunShellCommand
Kör gränssnittskommandon i sandbox-miljön.
| Parameter | Typ | Krävs | Description |
|---|---|---|---|
command |
snöre | Yes | Shell-kommando som ska köras |
explanation |
snöre | Nej | Beskrivning för att logga med kommandot |
isBackground |
booleskt | Nej | Måste vara false (bakgrundsjobb stöds inte) |
timeoutSeconds |
integer | Nej | Tidsgräns för körning (standard: 120, max: 240) |
Anmärkning
Kommandona körs från /mnt/data/. Använd relativa sökvägar och kedjekommandon genom att använda ; istället för &&.
Filåtgärder
| Tool | Description |
|---|---|
ReadSessionFile |
Läser innehållet i en fil från /mnt/data/. |
SearchSessionFiles |
Söker efter text i filer med hjälp av grep-liknande mönster. |
ListSessionFiles |
Visar en lista över alla filer i sessionen med metadata. |
GetSessionFile |
Laddar ned en fil från sessionen. |
UploadFileToSession |
Laddar upp en fil för vidare bearbetning. |
Filtyper som stöds
- Bilder: PNG, JPG, GIF, SVG, WebP, BMP, TIFF, EPS
- Data: CSV, TSV, Excel, JSON, XML, YAML, HDF5, NetCDF, pickle
- Dokument: PDF, HTML, Markdown, Office-format
- Kod: Python, Jupyter Notebooks, R, SQL
- Arkiv: ZIP, TAR, GZ
Begränsningar
Av säkerhetsskäl blockerar systemet följande åtgärder:
| Kategori | Blockerade åtgärder |
|---|---|
| Processlekning |
subprocess, os.system, , os.popenos.spawn* |
| Nätverksåtkomst | Utgående HTTP/HTTPS-begäranden |
| Paketinstallation |
pip install, conda install |
| Filsystem | Åtkomst utanför /mnt/data/ |
Felsöka kodtolkare
Körning av kod misslyckas
- Kontrollera att koden inte använder blockerade åtgärder som
subprocesseller nätverksanrop. - Kontrollera att alla filsökvägar pekar på
/mnt/data/. - Kontrollera att koden är under 20 000 tecken.
Filer visas inte i utdata
- Bekräfta att du sparar filer i
/mnt/data/. - Använd
ListSessionFilesför att verifiera att filen har skapats. - Kontrollera att filnamnstillägget stöds.
Timeout-felmeddelanden
- Öka parametern
timeoutSeconds(högst 900 sekunder). - Optimera koden för att minska exekveringstiden.
- Dela upp stora åtgärder i mindre segment.