Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O interpretador de código SRE Agent permite-lhe executar código Python e comandos shell num ambiente sandbox seguro e isolado. Use o Code Interpreter para analisar dados, criar visualizações, gerar relatórios PDF e automatizar operações de ficheiros sem sair da conversa com o seu Agente SRE.
Neste artigo, você aprenderá a:
- Executar código Python para analisar dados e criar visualizações
- Executar comandos de shell para operações de ficheiros
- Gerar e descarregar relatórios PDF
- Trabalhar com ficheiros no ambiente sandbox
Pré-requisitos
Para criar um agente, você precisa conceder ao agente as permissões corretas, definir as configurações corretas e conceder acesso aos recursos corretos:
Conta do Azure: você precisa de uma conta do Azure com uma assinatura ativa. Se ainda não tiver uma, pode criar uma conta gratuitamente.
Contexto de segurança: Certifique-se de que a sua conta de utilizador tem as permissões necessárias, seja como Administrador de Controlo de Acesso Baseado em Funções ou Administrador de Acesso de Utilizador.
Configurações de firewall: adicione
*.azuresre.aià lista de permissões nas configurações do firewall. Alguns perfis de rede podem bloquear o acesso ao*.azuresre.aidomínio por padrão.
Como funciona o interpretador de código
O interpretador de código SRE Agent executa-se numa sessão Azure Container Apps isolada com as seguintes características:
- Sem acesso à rede: O sandbox não consegue fazer pedidos HTTP ou HTTPS de saída.
-
Sem geração de processos: Comandos como
subprocesseos.systemsão bloqueados. -
Sem instalação de pacotes:
pip installeconda installnão estão disponíveis. -
Sistema de ficheiros isolado: Todos os ficheiros devem ser guardados em
/mnt/data/.
Estas restrições garantem que a execução do código é segura e previsível. Bibliotecas comuns de ciência de dados como pandas, matplotlib e seaborn já estão pré-instaladas.
Comece a usar o interpretador de código
As ferramentas de interpretação de código estão automaticamente disponíveis nas conversas do seu Agente SRE. Peça ao agente para realizar tarefas usando linguagem natural.
Exemplos de sugestões
Experimente estes prompts para começar:
- "Analise estes dados CSV e crie um gráfico com incidentes por categoria."
- "Gerar um resumo em PDF dos incidentes de hoje."
- "Analisa este ficheiro JSON e extrai os padrões de erro."
- "Lista todos os ficheiros da sessão e mostra os seus tamanhos."
O teu primeiro script em Python
O exemplo seguinte demonstra como criar uma visualização:
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)
Quando o código é executado com sucesso, o agente devolve a imagem inline na conversa.
Cenários
Analisar dados de incidentes
Use um interpretador de código para transformar dados brutos de incidentes em insights acionáveis e visualizações.
Peça ao Agente SRE que crie um ficheiro CSV com todos os incidentes ocorridos no último mês, utilizando o seguinte prompt:
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 analisar padrões de incidentes e identificar tendências:
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)
Criar visualizações
Gera gráficos para comunicar 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)
Gerar relatórios PDF
Crie documentos PDF formatados para as partes interessadas.
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()
O agente devolve um link de download para o PDF gerado.
Ficheiros de registo de processos
Pesquise e analise ficheiros de registo usando comandos 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
Referência da ferramenta
O Code Interpreter fornece as seguintes ferramentas:
ExecutePythonCode
Executa código Python numa sandbox isolada.
| Parâmetro | Tipo | Obrigatório | Description |
|---|---|---|---|
pythonCode |
cadeia (de caracteres) | Yes | Código Python para executar (até 20.000 caracteres) |
timeoutSeconds |
número inteiro | Não | Tempo de execução em segundos (padrão: 120, máximo: 900) |
Saída: As imagens são exibidas em linha como markdown. Os ficheiros de dados retornam como links de download.
GerarRelatórioPdf
Cria documentos PDF a partir de código Python.
| Parâmetro | Tipo | Obrigatório | Description |
|---|---|---|---|
pythonCode |
cadeia (de caracteres) | Yes | Código Python que cria um ficheiro PDF |
expectedOutputFilename |
cadeia (de caracteres) | Yes | Caminho onde o PDF é guardado (por exemplo, report.pdf) |
saveAsFilename |
cadeia (de caracteres) | Yes | Descarregar o nome do ficheiro (por exemplo, daily_summary.pdf) |
timeoutSeconds |
número inteiro | Não | Tempo de execução em segundos (padrão: 180, máximo: 900) |
RunShellCommand
Executa comandos shell na sandbox.
| Parâmetro | Tipo | Obrigatório | Description |
|---|---|---|---|
command |
cadeia (de caracteres) | Yes | Comando shell para executar |
explanation |
cadeia (de caracteres) | Não | Descrição a ser registada com o comando |
isBackground |
Booleano | Não | Deve ser false (tarefas em segundo plano não são suportadas) |
timeoutSeconds |
número inteiro | Não | Tempo limite de execução (padrão: 120, máximo: 240) |
Observação
Os comandos correm de /mnt/data/. Use caminhos relativos e comandos em cadeia usando ; em vez de &&.
Operações de ficheiros
| Tool | Description |
|---|---|
ReadSessionFile |
Lê o conteúdo de um ficheiro a partir de /mnt/data/. |
SearchSessionFiles |
Pesquisa de texto dentro de ficheiros usando padrões ao estilo grep. |
ListSessionFiles |
Lista todos os ficheiros da sessão com metadados. |
GetSessionFile |
Descarrega um ficheiro da sessão. |
UploadFileToSession |
Carrega um ficheiro para processamento posterior. |
Tipos de ficheiro suportados
- Imagens: PNG, JPG, GIF, SVG, WebP, BMP, TIFF, EPS
- Dados: CSV, TSV, Excel, JSON, XML, YAML, HDF5, NetCDF, pickle
- Documentos: PDF, HTML, Markdown, formatos Office
- Código: Python, Jupyter Notebooks, R, SQL
- Arquivos: ZIP, TAR, GZ
Limitações
Por razões de segurança, o sistema bloqueia as seguintes operações:
| Categoria | Operações bloqueadas |
|---|---|
| Geração de processos |
subprocess, os.system, os.popen, os.spawn* |
| Acesso à rede | Pedidos HTTP/HTTPS de saída |
| Instalação do pacote |
pip install, conda install |
| Sistema de ficheiros | Acesso exterior /mnt/data/ |
Interpretador de código para solução de problemas
Execução de código falha
- Verifica se o teu código não usa operações bloqueadas, como
subprocesschamadas de rede. - Verifique se todos os caminhos dos ficheiros apontam para
/mnt/data/. - Certifique-se de que o seu código tem menos de 20.000 caracteres.
Os ficheiros não aparecem na saída
- Confirme que guardou os ficheiros em
/mnt/data/. - Usar
ListSessionFilespara verificar a criação de ficheiros. - Verifique se a extensão do ficheiro é suportada.
Erros de tempo limite
- Aumente o
timeoutSecondsparâmetro (máximo 900 segundos). - Otimize o seu código para reduzir o tempo de execução.
- Dividir grandes operações em partes mais pequenas.