Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Interpretátor kódu agenta SRE umožňuje spouštět kód Pythonu a příkazy shellu v izolovaném, zabezpečeném sandboxovém prostředí. Pomocí interpretu kódu můžete analyzovat data, vytvářet vizualizace, generovat sestavy PDF a automatizovat operace se soubory bez opuštění konverzace agenta SRE.
V tomto článku se naučíte:
- Spuštění kódu Pythonu pro analýzu dat a vytváření vizualizací
- Spouštění shell příkazů pro souborové operace
- Generování a stahování sestav PDF
- Práce se soubory v sandboxovém prostředí
Požadavky
Pokud chcete vytvořit agenta, musíte agentu udělit správná oprávnění, nakonfigurovat správná nastavení a udělit přístup k správným prostředkům:
Účet Azure: Potřebujete účet Azure s aktivním předplatným. Pokud ho ještě nemáte, můžete si zdarma vytvořit účet.
Kontext zabezpečení: Ujistěte se, že váš uživatelský účet má
Microsoft.Authorization/roleAssignments/writeoprávnění jako správce řízení přístupu na základě role nebo správce uživatelských přístupů.Nastavení brány firewall: Přidejte
*.azuresre.aido seznamu povolených v nastavení brány firewall. Některé síťové profily můžou ve výchozím nastavení blokovat přístup k*.azuresre.aidoméně.
Jak interpret kódu funguje
Interpret kódu agenta SRE běží v izolované relaci Azure Container Apps s následujícími vlastnostmi:
- Žádný přístup k síti: Sandbox nemůže provádět odchozí požadavky HTTP nebo HTTPS.
-
Žádné spouštění procesů: Příkazy jako
subprocessaos.systemjsou blokované. -
Žádná instalace balíčku:
pip installaconda installnejsou k dispozici. -
Izolovaný systém souborů: Všechny soubory musí být uloženy do
/mnt/data/souboru .
Tato omezení zajišťují zabezpečení a předvídatelné spouštění kódu. Předinstalované jsou běžné knihovny datových věd, jako jsou pandas, matplotlib a seaborn.
Začínáme s interpretem kódu
Nástroje interpretu kódu jsou automaticky dostupné v konverzacích agenta SRE. Požádejte agenta, aby prováděl úlohy pomocí přirozeného jazyka.
Ukázkové výzvy
Vyzkoušejte tyto výzvy, abyste mohli začít:
- "Analyzujte tato data CSV a vytvořte graf zobrazující incidenty podle kategorií."
- "Vygenerování souhrnu dnešních incidentů ve formátu PDF."
- Parsujte tento soubor JSON a extrahujte vzory chyb.
- "Vypište všechny soubory v relaci a zobrazte jejich velikosti."
První skript Pythonu
Následující příklad ukazuje, jak vytvořit vizualizaci:
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)
Když se kód úspěšně spustí, agent zobrazí obrázek přímo v konverzaci.
Scénáře
Analýza dat incidentů
Pomocí interpretu kódu můžete transformovat nezpracovaná data incidentů na užitečné přehledy a vizualizace.
Požádejte agenta SRE, aby pomocí následující výzvy vytvořil soubor CSV se všemi incidenty, ke kterým došlo v posledním měsíci:
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`.Pomocí Pythonu můžete analyzovat vzory incidentů a identifikovat trendy:
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)
Vytváření vizualizací
Generování grafů pro komunikaci přehledů
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)
Generování sestav PDF
Vytvářejte formátované dokumenty PDF pro zúčastněné strany.
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()
Agent vrátí odkaz ke stažení pro vygenerovaný soubor PDF.
Zpracování souborů protokolu
Prohledávejte a analyzujte soubory protokolu pomocí příkazů shellu.
# 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
Referenční informace k nástrojům
Interpret kódu poskytuje následující nástroje:
ExecutePythonCode
Spustí kód Pythonu v izolovaném sandboxu.
| Parameter | Typ | Povinné | Description |
|---|---|---|---|
pythonCode |
řetězec | Ano | Kód Pythonu ke spuštění (až 20 000 znaků) |
timeoutSeconds |
integer | Ne | Časový limit spuštění v sekundách (výchozí hodnota: 120, maximum: 900) |
Výstup: Obrázky se zobrazují vložené v rámci textu jako markdown. Datové soubory se vrátí jako odkazy ke stažení.
GeneratePdfReport
Vytvoří dokumenty PDF z kódu Pythonu.
| Parameter | Typ | Povinné | Description |
|---|---|---|---|
pythonCode |
řetězec | Ano | Kód Pythonu, který vytvoří soubor PDF |
expectedOutputFilename |
řetězec | Ano | Cesta, kam je soubor PDF uložený (například report.pdf) |
saveAsFilename |
řetězec | Ano | Stáhnout název souboru (například daily_summary.pdf) |
timeoutSeconds |
integer | Ne | Časový limit spuštění v sekundách (výchozí hodnota: 180, maximum: 900) |
RunShellCommand
Provádí příkazy shellu v sandboxu.
| Parameter | Typ | Povinné | Description |
|---|---|---|---|
command |
řetězec | Ano | Příkaz prostředí ke spuštění |
explanation |
řetězec | Ne | Popis pro protokolování pomocí příkazu |
isBackground |
Boolean | Ne | Musí to být false (úlohy na pozadí nejsou podporované). |
timeoutSeconds |
integer | Ne | Časový limit spuštění (výchozí: 120, max: 240) |
Poznámka:
Příkazy se spouštějí z /mnt/data/. Používejte relativní cesty a řetězení příkazů pomocí ; namísto &&.
Operace se soubory
| Tool | Description |
|---|---|
ReadSessionFile |
Načte obsah souboru z /mnt/data/. |
SearchSessionFiles |
Vyhledá text v souborech pomocí vzorů ve stylu grep. |
ListSessionFiles |
Zobrazí seznam všech souborů v relaci s metadaty. |
GetSessionFile |
Stáhne soubor z relace. |
UploadFileToSession |
Nahraje soubor pro další zpracování. |
Podporované typy souborů
- Obrázky: PNG, JPG, GIF, SVG, WebP, BMP, TIFF, EPS
- Data: CSV, TSV, Excel, JSON, XML, YAML, HDF5, NetCDF, pickle
- Dokumenty: PDF, HTML, Markdown, formáty Office
- Kód: Python, poznámkové bloky Jupyter, R, SQL
- Archivy: ZIP, TAR, GZ
Omezení
Z bezpečnostních důvodů systém blokuje následující operace:
| Kategorie | Blokované operace |
|---|---|
| Vytváření procesů |
subprocess, os.system, , os.popenos.spawn* |
| Síťový přístup | Odchozí požadavky HTTP/HTTPS |
| Instalace balíčku |
pip install, conda install |
| Systém souborů | Přístup mimo /mnt/data/ |
Řešení potíží s interpretem kódu
Selhání spuštění kódu
- Ověřte, že váš kód nepoužívá blokované operace, jako
subprocessjsou nebo síťová volání. - Zkontrolujte, zda všechny cesty k souborům odkazují na
/mnt/data/. - Ujistěte se, že váš kód má méně než 20 000 znaků.
Soubory se ve výstupu nezobrazují
- Potvrďte, že soubory ukládáte do
/mnt/data/. - Slouží
ListSessionFilesk ověření vytvoření souboru. - Zkontrolujte, jestli je podporovaná přípona souboru.
Chyby časového limitu
-
timeoutSecondsZvyšte parametr (maximálně 900 sekund). - Optimalizujte kód, abyste zkrátili dobu provádění.
- Rozdělte velké operace na menší bloky dat.