Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El intérprete de código del agente SRE permite ejecutar comandos de shell y código de Python en un entorno de espacio aislado seguro. Use el intérprete de código para analizar datos, crear visualizaciones, generar informes PDF y automatizar las operaciones de archivos sin salir de la conversación del agente de SRE.
En este artículo aprenderá a:
- Ejecución de código de Python para analizar datos y crear visualizaciones
- Ejecución de comandos de shell para operaciones de archivo
- Generación y descarga de informes PDF
- Trabajar con archivos en el entorno de pruebas
Prerrequisitos
Para crear un agente, debe conceder al agente los permisos correctos, configurar las opciones correctas y conceder acceso a los recursos adecuados:
Cuenta de Azure: necesita una cuenta de Azure con una suscripción activa. Si no la tiene, puede crear una cuenta gratis.
Contexto de seguridad: asegúrese de que su cuenta de usuario tenga los
Microsoft.Authorization/roleAssignments/writepermisos como Administrador de control de acceso basado en roles o Administrador de acceso de usuario.Configuración del firewall: agregue
*.azuresre.aia la lista de permitidos en la configuración del firewall. Algunos perfiles de red pueden bloquear el acceso al*.azuresre.aidominio de forma predeterminada.
Funcionamiento del intérprete de código
El intérprete de código del agente SRE se ejecuta en una sesión aislada de Azure Container Apps con las siguientes características:
- Sin acceso a la red: el espacio aislado no puede realizar solicitudes HTTP o HTTPS salientes.
-
No se genera ningún proceso: comandos como
subprocessyos.systemestán bloqueados. -
Sin instalación de paquetes:
pip installyconda installno están disponibles. -
Sistema de archivos aislado: todos los archivos deben guardarse en
/mnt/data/.
Estas restricciones garantizan que la ejecución del código sea segura y predecible. Las bibliotecas comunes de ciencia de datos como pandas, matplotlib y seaborn están preinstaladas.
Introducción al intérprete de código
Las herramientas de intérprete de código están disponibles automáticamente en las conversaciones del agente de SRE. Pida al agente que realice tareas mediante lenguaje natural.
Ejemplos de indicaciones
Pruebe estas indicaciones para empezar:
- "Analice estos datos CSV y cree un gráfico que muestre incidentes por categoría".
- "Generar un resumen PDF de los incidentes actuales."
- "Analice este archivo JSON y extraiga los patrones de error".
- "Enumere todos los archivos de la sesión y muestre sus tamaños".
El primer script de Python
En el ejemplo siguiente se muestra cómo crear una visualización:
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)
Cuando el código se ejecuta correctamente, el agente devuelve la imagen insertada en la conversación.
Escenarios
Análisis de datos de incidentes
Use el intérprete de código para transformar los datos de incidentes sin procesar en información y visualizaciones procesables.
Pida al agente de SRE que cree un archivo CSV de todos los incidentes que se han producido en el último mes mediante el siguiente mensaje:
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`.Use Python para analizar patrones de incidentes e identificar tendencias:
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)
Creación de visualizaciones
Genere gráficos para comunicar información.
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)
Generación de informes PDF
Cree documentos PDF con formato para las partes interesadas.
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()
El agente devuelve un vínculo de descarga para el PDF generado.
Procesar archivos de registro
Busque y analice los archivos de registro mediante comandos de 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
Referencia de herramientas
El intérprete de código proporciona las siguientes herramientas:
ExecutePythonCode
Ejecuta código de Python en un espacio aislado.
| Parámetro | Tipo | Obligatorio | Description |
|---|---|---|---|
pythonCode |
cuerda / cadena | Sí | Código de Python que se va a ejecutar (hasta 20 000 caracteres) |
timeoutSeconds |
entero | No | Tiempo de espera de ejecución en segundos (valor predeterminado: 120, máximo: 900) |
Salida: Las imágenes se muestran en línea, como Markdown. Los archivos de datos se ofrecen como enlaces de descarga.
GenerarInformePdf
Crea documentos PDF a partir del código de Python.
| Parámetro | Tipo | Obligatorio | Description |
|---|---|---|---|
pythonCode |
cuerda / cadena | Sí | Código de Python que crea un archivo PDF |
expectedOutputFilename |
cuerda / cadena | Sí | Ruta de acceso donde se guarda el PDF (por ejemplo, report.pdf) |
saveAsFilename |
cuerda / cadena | Sí | Descargar nombre de archivo (por ejemplo, daily_summary.pdf) |
timeoutSeconds |
entero | No | Tiempo de espera de ejecución en segundos (valor predeterminado: 180, máximo: 900) |
RunShellCommand
Ejecuta comandos de shell en el espacio aislado.
| Parámetro | Tipo | Obligatorio | Description |
|---|---|---|---|
command |
cuerda / cadena | Sí | Comando de shell para ejecutar |
explanation |
cuerda / cadena | No | Descripción para registrar con el comando |
isBackground |
boolean | No | Debe ser false (no se admiten trabajos en segundo plano) |
timeoutSeconds |
entero | No | Tiempo de espera de ejecución (valor predeterminado: 120, máximo: 240) |
Nota:
Los comandos se ejecutan desde /mnt/data/. Use rutas de acceso relativas y comandos de cadena mediante ; en lugar de &&.
Operaciones de archivo
| Tool | Description |
|---|---|
ReadSessionFile |
Lee el contenido de un archivo de /mnt/data/. |
SearchSessionFiles |
Busca texto dentro de archivos mediante patrones de estilo grep. |
ListSessionFiles |
Enumera todos los archivos de la sesión con metadatos. |
GetSessionFile |
Descarga un archivo de la sesión. |
UploadFileToSession |
Carga un archivo para su posterior procesamiento. |
Tipos de archivo compatibles
- Imágenes: PNG, JPG, GIF, SVG, WebP, BMP, TIFF, EPS
- Datos: CSV, TSV, Excel, JSON, XML, YAML, HDF5, NetCDF, pickle
- Documentos: PDF, HTML, Markdown, formatos de Office
- Código: Python, Jupyter Notebooks, R, SQL
- Archivos: ZIP, TAR, GZ
Limitaciones
Por motivos de seguridad, el sistema bloquea las siguientes operaciones:
| Categoría | Operaciones bloqueadas |
|---|---|
| Generación de procesos |
subprocess, os.system, , os.popen, os.spawn* |
| Acceso de red | Solicitudes HTTP/HTTPS salientes |
| Instalación del paquete |
pip install, conda install |
| Sistema de archivos | Acceso desde fuera /mnt/data/ |
Solución de problemas del intérprete de código
Error en la ejecución del código
- Compruebe que el código no usa operaciones bloqueadas como
subprocesso llamadas de red. - Compruebe que todas las rutas de acceso de archivo apunten a
/mnt/data/. - Asegúrese de que el código tiene menos de 20 000 caracteres.
Los archivos no aparecen en la salida
- Confirme que guarda los archivos en
/mnt/data/. - Use
ListSessionFilespara comprobar la creación de archivos. - Compruebe que se admite la extensión de archivo.
Errores de tiempo de espera
- Aumente el
timeoutSecondsparámetro (máximo 900 segundos). - Optimice el código para reducir el tiempo de ejecución.
- Divida las operaciones grandes en fragmentos más pequeños.