Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
SRE Aracısı kod yorumlayıcısı, Python kodu ve kabuk komutlarını güvenli, yalıtılmış bir korumalı alan ortamında yürütmenizi sağlar. SRE Aracısı konuşmanızdan çıkmadan verileri analiz etmek, görselleştirmeler oluşturmak, PDF raporları oluşturmak ve dosya işlemlerini otomatikleştirmek için Kod Yorumlayıcı'yı kullanın.
Bu makalede şunları öğreneceksiniz:
- Verileri analiz etmek ve görselleştirmeler oluşturmak için Python kodu yürütme
- Dosya işlemleri için kabuk komutlarını çalıştırma
- PDF raporları oluşturma ve indirme
- Korumalı alan ortamında dosyalarla çalışın
Önkoşullar
Aracı oluşturmak için aracınıza doğru izinleri vermeniz, doğru ayarları yapılandırmanız ve doğru kaynaklara erişim vermeniz gerekir:
Azure hesabı: Etkin aboneliği olan bir Azure hesabına ihtiyacınız vardır. Henüz bir hesabınız yoksa ücretsiz olarak bir hesap oluşturabilirsiniz.
Güvenlik bağlamı: Kullanıcı hesabınızın
Microsoft.Authorization/roleAssignments/writeveya Kullanıcı Erişim Yöneticisi izinlerine sahip olduğundan emin olun.Güvenlik duvarı ayarları: Güvenlik duvarı ayarlarınızda izin verilenler listesine ekleyin
*.azuresre.ai. Bazı ağ profilleri, varsayılan olarak*.azuresre.aietki alanına erişimi engelleyebilir.
Kod yorumlayıcı nasıl çalışır?
SRE Aracısı kod yorumlayıcısı, aşağıdaki özelliklere sahip yalıtılmış bir Azure Container Apps oturumunda çalışır:
- Ağ erişimi yok: Sandbox giden HTTP veya HTTPS istekleri yapamaz.
-
İşlem oluşturma yok:
subprocessveos.systemgibi komutlar engellenir. -
Paket yüklemesi yok:
pip installveconda installkullanılamıyor. -
Yalıtılmış dosya sistemi: Tüm dosyaların
/mnt/data/konumuna kaydedilmesi gerekir.
Bu kısıtlamalar, kod yürütmenin güvenli ve öngörülebilir olmasını sağlar. Pandas, matplotlib ve seaborn gibi yaygın veri bilimi kitaplıkları önceden yüklenmiştir.
Kod yorumlayıcıyı kullanmaya başlama
Kod yorumlayıcı araçları SRE Aracısı konuşmalarınızda otomatik olarak kullanılabilir. Aracıdan doğal dil kullanarak görevleri gerçekleştirmesini isteyin.
Örnek komutlar
Başlamak için şu istemleri deneyin:
- "Bu CSV verilerini analiz edin ve olayları kategoriye göre gösteren bir grafik oluşturun."
- "Bugünkü olayların PDF özetini oluşturun."
- "Bu JSON dosyasını ayrıştırın ve hata desenlerini ayıklayın."
- "Oturumdaki tüm dosyaları listeleyin ve boyutlarını gösterin."
Python'daki ilk betiğiniz
Aşağıdaki örnekte görselleştirmenin nasıl oluşturulacağı gösterilmektedir:
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)
Kod başarıyla çalıştırıldığında ajan, konuşma içinde görüntüyü satır içi olarak geri döndürür.
Scenarios
Olay verilerini analiz etme
Ham olay verilerini eyleme dönüştürülebilir içgörülere ve görselleştirmelere dönüştürmek için kod yorumlayıcısını kullanın.
SRE Aracısı'na aşağıdaki istemi kullanarak geçen ay gerçekleşen tüm olayların CSV dosyasını oluşturmasını isteyin:
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`.Python'ı kullanarak olay desenlerini analiz edin ve eğilimleri belirleyin:
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)
Görselleştirme oluşturun
İçgörüleri iletmek için grafikler oluşturun.
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)
PDF raporları oluşturma
Paydaşlar için biçimlendirilmiş PDF belgeleri oluşturun.
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()
Aracı, oluşturulan PDF için bir indirme bağlantısı döndürür.
Günlük dosyalarını işleme
Shell komutlarını kullanarak günlük dosyalarını arayın ve analiz edin.
# 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
Araç referansı
Kod Yorumlayıcı aşağıdaki araçları sağlar:
ExecutePythonCode
Python kodunu yalıtılmış bir korumalı alanda çalıştırır.
| Parametre | Türü | Gerekli | Description |
|---|---|---|---|
pythonCode |
String | Yes | Çalıştırılacak Python kodu (en fazla 20.000 karakter) |
timeoutSeconds |
tamsayı | Hayı | Saniye cinsinden yürütme zaman aşımı (varsayılan: 120, en fazla: 900) |
Çıkış: Görüntüler satır içi olarak markdown formatında gösterilir. Veri dosyaları indirme bağlantıları olarak geri döner.
PDFRaporOlustur
Python kodundan PDF belgeleri oluşturur.
| Parametre | Türü | Gerekli | Description |
|---|---|---|---|
pythonCode |
String | Yes | PDF dosyası oluşturan Python kodu |
expectedOutputFilename |
String | Yes | PDF'nin kaydedildiği yol (örneğin, report.pdf) |
saveAsFilename |
String | Yes | Dosya adını indirin (örneğin, daily_summary.pdf) |
timeoutSeconds |
tamsayı | Hayı | Saniye cinsinden yürütme zaman aşımı (varsayılan: 180, en fazla: 900) |
RunShellCommand
Korumalı alanda kabuk komutlarını çalıştırır.
| Parametre | Türü | Gerekli | Description |
|---|---|---|---|
command |
String | Yes | Çalıştırılacak Shell komutu |
explanation |
String | Hayı | komut ile log dosyasına kaydedilecek açıklama |
isBackground |
Boolean | Hayı |
false olmalıdır (arka plan görevleri desteklenmez) |
timeoutSeconds |
tamsayı | Hayı | Yürütme zaman aşımı (varsayılan: 120, maksimum: 240) |
Uyarı
Komutlar /mnt/data/'den çalıştırılır.
; yerine && kullanarak göreli yolları ve zincir komutlarını kullanın.
Dosya işlemleri
| Tool | Description |
|---|---|
ReadSessionFile |
/mnt/data/ dosyasının içeriğini okur. |
SearchSessionFiles |
Grep stili desenleri kullanarak dosyaların içinde metin arar. |
ListSessionFiles |
Oturumdaki tüm dosyaları meta verilerle listeler. |
GetSessionFile |
Oturumdan bir dosya indirir. |
UploadFileToSession |
Daha fazla işlem için bir dosyayı karşıya yükler. |
Desteklenen dosya türleri
- Görüntüler: PNG, JPG, GIF, SVG, WebP, BMP, TIFF, EPS
- Veri: CSV, TSV, Excel, JSON, XML, YAML, HDF5, NetCDF, pickle
- Belgeler: PDF, HTML, Markdown, Office biçimleri
- Kod: Python, Jupyter not defterleri, R, SQL
- Arşivler: ZIP, TAR, GZ
Sınırlamalar
Güvenlik nedeniyle sistem aşağıdaki işlemleri engeller:
| Kategori | Engellenen işlemler |
|---|---|
| İşlem oluşturma |
subprocess, os.system, os.popen, os.spawn* |
| Ağ erişimi | Giden HTTP/HTTPS istekleri |
| Paket yükleme |
pip install, conda install |
| Dosya sistemi | Dışarıdan erişim /mnt/data/ |
Kod yorumlayıcı sorunlarını giderme
Kod yürütme başarısız oluyor
- Kodunuzun veya ağ çağrıları gibi
subprocessengellenen işlemleri kullanmadığını doğrulayın. - Tüm dosya yollarının
/mnt/data/konumunu işaret ettiğini kontrol edin. - Kodunuzun 20.000 karakterin altında olduğundan emin olun.
Dosyalar çıkışta görünmüyor
- Dosyaları
/mnt/data/konumuna kaydettiğinizi onaylayın. - Dosya oluşturmayı doğrulamak için kullanın
ListSessionFiles. - Dosya uzantısının desteklendiğini denetleyin.
Zaman aşımı hataları
- Parametresini
timeoutSecondsartırın (en fazla 900 saniye). - Yürütme süresini kısaltmak için kodunuzu iyileştirin.
- Büyük işlemleri daha küçük öbeklere bölün.