Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Penerjemah kode Agen SRE memungkinkan Anda menjalankan kode Python dan perintah shell di lingkungan kotak pasir yang aman dan terisolasi. Gunakan Penerjemah Kode untuk menganalisis data, membuat visualisasi, membuat laporan PDF, dan mengotomatiskan operasi file tanpa meninggalkan percakapan Agen SRE Anda.
Dalam artikel ini, Anda akan mempelajari cara:
- Jalankan kode Python untuk menganalisis data dan membuat visualisasi
- Menjalankan perintah shell untuk operasi file
- Membuat dan mengunduh laporan PDF
- Bekerja dengan file di lingkungan kotak pasir
Prasyarat
Untuk membuat agen, Anda perlu memberi agen Anda izin yang benar, mengonfigurasi pengaturan yang benar, dan memberikan akses ke sumber daya yang tepat:
Akun Azure: Anda memerlukan akun Azure dengan langganan aktif. Jika Anda belum memilikinya, Anda dapat membuat akun secara gratis.
Konteks keamanan: Pastikan akun pengguna Anda memiliki
Microsoft.Authorization/roleAssignments/writeizin sebagai Administrator Kontrol Akses Berbasis Peran atau Administrator Akses Pengguna.Pengaturan firewall: Tambahkan
*.azuresre.aike daftar yang diizinkan di pengaturan firewall Anda. Beberapa profil jaringan mungkin memblokir akses ke*.azuresre.aidomain secara default.
Cara kerja penerjemah kode
Penerjemah kode Agen SRE berjalan dalam sesi Azure Container Apps yang terisolasi dengan karakteristik berikut:
- Tidak ada akses jaringan: Sandbox tidak dapat membuat permintaan HTTP atau HTTPS keluar.
-
Tidak ada proses pemijahan: Perintah seperti
subprocessdanos.systemdiblokir. -
Tidak ada penginstalan paket:
pip installdanconda installtidak tersedia. -
Sistem file terisolasi: Semua file harus disimpan ke
/mnt/data/.
Pembatasan ini memastikan bahwa eksekusi kode aman dan dapat diprediksi. Pustaka ilmu data umum seperti panda, matplotlib, dan seaborn telah diinstal sebelumnya.
Mulai menggunakan penerjemah kode
Alat penerjemah kode tersedia secara otomatis dalam percakapan Agen SRE Anda. Minta agen untuk melakukan tugas dengan menggunakan bahasa alami.
Contoh arahan
Coba perintah ini untuk memulai:
- "Analisis data CSV ini dan buat bagan yang menunjukkan insiden berdasarkan kategori."
- "Hasilkan ringkasan PDF dari insiden hari ini."
- "Uraikan file JSON ini dan ekstrak pola kesalahan."
- "Cantumkan semua file dalam sesi dan tampilkan ukurannya."
Skrip Python pertama Anda
Contoh berikut menunjukkan cara membuat visualisasi:
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)
Saat kode berhasil dijalankan, agen mengembalikan gambar sebaris dalam percakapan.
Skenario
Menganalisis data insiden
Gunakan penerjemah kode untuk mengubah data insiden mentah menjadi wawasan dan visualisasi yang dapat ditindaklanjuti.
Minta Agen SRE untuk membuat file CSV dari semua insiden yang telah terjadi dalam sebulan terakhir menggunakan perintah berikut:
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`.Gunakan Python untuk menganalisis pola insiden dan mengidentifikasi tren:
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)
Membuat visualisasi
Buat bagan untuk mengomunikasikan wawasan.
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)
Hasilkan laporan PDF
Buat dokumen PDF yang diformat untuk pemangku kepentingan.
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()
Agen mengembalikan tautan unduhan untuk PDF yang dihasilkan.
Memproses file log
Cari dan analisis file log dengan menggunakan perintah 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
Referensi alat
Penerjemah Kode menyediakan alat berikut:
ExecutePythonCode
Menjalankan kode Python dalam kotak pasir terisolasi.
| Pengaturan | Tipe | Diperlukan | Description |
|---|---|---|---|
pythonCode |
string | Yes | Kode Python untuk dijalankan (hingga 20.000 karakter) |
timeoutSeconds |
bilangan bulat | Tidak. | Batas waktu eksekusi dalam detik (default: 120, maksimum: 900) |
Output: Gambar ditampilkan sebaris dalam format markdown. File data ditampilkan sebagai tautan unduhan.
Menghasilkan Laporan PDF
Membuat dokumen PDF dari kode Python.
| Pengaturan | Tipe | Diperlukan | Description |
|---|---|---|---|
pythonCode |
string | Yes | Kode Python yang membuat file PDF |
expectedOutputFilename |
string | Yes | Jalur tempat PDF disimpan (misalnya, report.pdf) |
saveAsFilename |
string | Yes | Unduh nama file (misalnya, daily_summary.pdf) |
timeoutSeconds |
bilangan bulat | Tidak. | Batas waktu eksekusi dalam detik (default: 180, maksimum: 900) |
JalankanPerintahShell
Menjalankan perintah shell dalam sandbox.
| Pengaturan | Tipe | Diperlukan | Description |
|---|---|---|---|
command |
string | Yes | Perintah shell untuk dijalankan |
explanation |
string | Tidak. | Deskripsi untuk log dengan perintah |
isBackground |
Boolean | Tidak. | Harus false (pekerjaan latar belakang tidak didukung) |
timeoutSeconds |
bilangan bulat | Tidak. | Batas waktu eksekusi (default: 120, maks: 240) |
Nota
Perintah dijalankan dari /mnt/data/. Gunakan jalur relatif dan perintah rantai dengan menggunakan ; alih-alih &&.
Operasi file
| Tool | Description |
|---|---|
ReadSessionFile |
Membaca konten file dari /mnt/data/. |
SearchSessionFiles |
Mencari teks di dalam file menggunakan pola pencarian ala grep. |
ListSessionFiles |
Mencantumkan semua file dalam sesi dengan metadata. |
GetSessionFile |
Mengunduh file dari sesi. |
UploadFileToSession |
Mengunggah file untuk diproses lebih lanjut. |
Jenis file yang didukung
- Gambar: PNG, JPG, GIF, SVG, WebP, BMP, TIFF, EPS
- Data: CSV, TSV, Excel, JSON, XML, YAML, HDF5, NetCDF, pickle
- Dokumen: PDF, HTML, Markdown, format Office
- Kode: Python, Jupyter notebooks, R, SQL
- Arsip: ZIP, TAR, GZ
Keterbatasan
Untuk alasan keamanan, sistem memblokir operasi berikut:
| Kategori | Operasi yang diblokir |
|---|---|
| Pemijahan proses |
subprocess,os.system,os.popen,os.spawn* |
| Akses jaringan | Permintaan keluar HTTP/HTTPS |
| Penginstalan paket |
pip install, conda install |
| Sistem file | Akses eksternal /mnt/data/ |
Memecahkan masalah penerjemah kode
Eksekusi kode gagal
- Pastikan kode Anda tidak menggunakan operasi yang diblokir seperti
subprocessatau panggilan jaringan. - Periksa apakah semua jalur file menunjuk ke
/mnt/data/. - Pastikan kode Anda di bawah 20.000 karakter.
File tidak muncul dalam output
- Konfirmasikan bahwa Anda menyimpan file ke
/mnt/data/. - Gunakan
ListSessionFilesuntuk memverifikasi pembuatan file. - Periksa apakah ekstensi file didukung.
Kesalahan batas waktu
- Tingkatkan
timeoutSecondsparameter (maksimum 900 detik). - Optimalkan kode Anda untuk mengurangi waktu eksekusi.
- Membagi operasi besar menjadi potongan yang lebih kecil.