Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O interpretador de código do Agente SRE permite executar comandos de código e shell do Python em um ambiente de área restrita segura e isolada. Use o Interpretador de Código para analisar dados, criar visualizações, gerar relatórios PDF e automatizar operações de arquivo sem sair da conversa do 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 arquivo
- Gerar e baixar relatórios PDF
- Trabalhar com arquivos no ambiente de área restrita
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 certos:
Conta do Azure: você precisa de uma conta do Azure com uma assinatura ativa. Se você ainda não tiver uma, poderá criar uma conta gratuitamente.
Contexto de segurança: verifique se sua conta de usuário tem as
Microsoft.Authorization/roleAssignments/writepermissões como Administrador de Controle de Acesso Baseado em Função ou Administrador de Acesso do Usuário.Configurações de firewall: adicione
*.azuresre.aià lista de permissões nas configurações de 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 do Agente SRE é executado em uma sessão isolada dos Aplicativos de Contêiner do Azure com as seguintes características:
- Sem acesso à rede: o sandbox não pode fazer solicitações HTTP ou HTTPS de saída.
-
Nenhuma geração de processo: comandos como
subprocesseos.systemsão bloqueados. -
Nenhuma instalação de pacote:
pip installeconda installnão estão disponíveis. -
Sistema de arquivos isolado: todos os arquivos devem ser salvos em
/mnt/data/.
Essas restrições garantem que a execução de código seja segura e previsível. Bibliotecas comuns de ciência de dados como pandas, matplotlib e seaborn são pré-instaladas.
Introdução ao interpretador de código
As ferramentas de interpretador de código estão disponíveis automaticamente em suas conversas do Agente SRE. Peça ao agente para executar tarefas usando linguagem natural.
Prompts de exemplo
Experimente estes prompts para começar:
- "Analise esses dados CSV e crie um gráfico mostrando incidentes por categoria."
- "Gere um resumo em PDF dos incidentes de hoje."
- "Analise este arquivo JSON e extraia os padrões de erro."
- "Liste todos os arquivos na sessão e mostre seus tamanhos."
Seu primeiro script Python
O exemplo a seguir 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 êxito, o agente retorna a imagem como parte da conversa.
Cenários
Analisar dados de incidentes
Use o interpretador de código para transformar dados de incidente brutos em insights e visualizações acionáveis.
Peça ao Agente SRE para criar um arquivo CSV de todos os incidentes ocorridos no último mês usando 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 o 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
Gere 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 os stakeholders.
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 retorna um link de download para o PDF gerado.
Processar arquivos de log
Pesquise e analise arquivos de log usando 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
Referência da ferramenta
O Interpretador de Código fornece as seguintes ferramentas:
ExecutePythonCode
Executa o código python em uma área restrita isolada.
| Parâmetro | Tipo | Obrigatório | Description |
|---|---|---|---|
pythonCode |
cadeia | Yes | Código python a ser executado (até 20.000 caracteres) |
timeoutSeconds |
inteiro | Não | Tempo limite de execução em segundos (padrão: 120, máximo: 900) |
Saída: As imagens são exibidas em formato Markdown. Os arquivos de dados retornam como links de download.
GerarRelatórioPdf
Cria documentos PDF com base no código Python.
| Parâmetro | Tipo | Obrigatório | Description |
|---|---|---|---|
pythonCode |
cadeia | Yes | Código python que cria um arquivo PDF |
expectedOutputFilename |
cadeia | Yes | Caminho em que o PDF é salvo (por exemplo, report.pdf) |
saveAsFilename |
cadeia | Yes | Baixar nome do arquivo (por exemplo, daily_summary.pdf) |
timeoutSeconds |
inteiro | Não | Tempo limite de execução em segundos (padrão: 180, máximo: 900) |
RunShellCommand
Executa comandos de shell na sandbox.
| Parâmetro | Tipo | Obrigatório | Description |
|---|---|---|---|
command |
cadeia | Yes | Comando shell a ser executado |
explanation |
cadeia | Não | Descrição para fazer logon com o comando |
isBackground |
boolean | Não | Deve ser false (não há suporte para trabalhos em segundo plano) |
timeoutSeconds |
inteiro | Não | Tempo limite de execução (padrão: 120, máximo: 240) |
Observação
Os comandos são executados em /mnt/data/. Use caminhos relativos e comandos de cadeia usando ; em vez de &&.
Operações de arquivo
| Tool | Description |
|---|---|
ReadSessionFile |
Lê o conteúdo de um arquivo de /mnt/data/. |
SearchSessionFiles |
Pesquisa texto em arquivos usando padrões de estilo grep. |
ListSessionFiles |
Lista todos os arquivos na sessão com metadados. |
GetSessionFile |
Baixa um arquivo da sessão. |
UploadFileToSession |
Carrega um arquivo para processamento adicional. |
Tipos de arquivo com suporte
- Imagens: PNG, JPG, GIF, SVG, WebP, BMP, TIFF, EPS
- Dados: CSV, TSV, Excel, JSON, XML, YAML, HDF5, NetCDF, pickle
- Documentos: PDF, HTML, Markdown, formatos do Office
- Código: Python, Jupyter Notebooks, R, SQL
- Arquivos: ZIP, TAR, GZ
Limitações
Por motivos de segurança, o sistema bloqueia as seguintes operações:
| Categoria | Operações bloqueadas |
|---|---|
| Geração de processos |
subprocess, os.system, , os.popenos.spawn* |
| Acesso de rede | Solicitações HTTP/HTTPS de saída |
| Instalação do pacote |
pip install, conda install |
| Sistema de arquivos | Acesso externo /mnt/data/ |
Solucionar problemas do interpretador de código
Falha na execução do código
- Verifique se o código não usa operações bloqueadas como
subprocessou chamadas de rede. - Verifique se todos os caminhos de arquivo apontam para
/mnt/data/. - Verifique se o código tem menos de 20.000 caracteres.
Os arquivos não aparecem na saída
- Confirme se você salvou arquivos em
/mnt/data/. - Use
ListSessionFilespara verificar a criação de arquivo. - Verifique se a extensão de arquivo tem suporte.
Erros do tempo limite
- Aumente o
timeoutSecondsparâmetro (máximo de 900 segundos). - Otimize seu código para reduzir o tempo de execução.
- Divida operações grandes em partes menores.