مشاركة عبر


تشغيل الكود باستخدام مفسر الشيفرة في Azure SRE Agent

يتيح لك مفسر كود SRE Agent تنفيذ أوامر كود بايثون وأوامر shell في بيئة صندوق رمل آمنة ومعزولة. استخدم Code Interpreter لتحليل البيانات، وإنشاء التصورات، وإنشاء تقارير PDF، وأتمتة عمليات الملفات دون الخروج من محادثة وكيل SRE الخاصة بك.

في هذه المقالة، ستتعرف على كيفية:

  • تنفيذ كود بايثون لتحليل البيانات وإنشاء تصورات
  • تشغيل أوامر shell لعمليات الملفات
  • إنشاء وتنزيل تقارير PDF
  • العمل مع الملفات في بيئة صندوق الرمل

المتطلبات الأساسية

لإنشاء وكيل، تحتاج إلى منح وكيلك الأذونات الصحيحة، وتكوين الإعدادات الصحيحة، ومنح حق الوصول إلى الموارد الصحيحة:

  • حساب Azure: أنت بحاجة إلى حساب Azure باشتراك نشط. إذا لم تكن تملك حسابًا، فإنه يمكنكإنشاء حساب مجانًا.

  • سياق الأمان: تأكد من أن حساب المستخدم الخاص بك لديه Microsoft.Authorization/roleAssignments/write الأذونات إما كمسؤول التحكم في الوصول المستند إلى الدور أو مسؤول وصول المستخدم.

  • إعدادات جدار الحماية: أضف *.azuresre.ai إلى القائمة المسموح بها في إعدادات جدار الحماية. قد تحظر بعض ملفات تعريف الشبكات الوصول إلى *.azuresre.ai النطاق تلقائيا.

كيف يعمل مفسر الشيفرة

يعمل مفسر كود وكيل SRE في جلسة معزولة لتطبيقات الحاويات Azure ذات الخصائص التالية:

  • لا يوجد وصول إلى الشبكة: لا يمكن للصندوق الرملي إجراء طلبات HTTP أو HTTPS الصادرة.
  • لا ظهور للعمليات: الأوامر تحب subprocess ويتم os.system حجبها.
  • لا يوجد تركيب للباقة: pip install ولا conda install يتوفر النظام.
  • نظام الملفات المعزول: يجب حفظ جميع الملفات على /mnt/data/.

تضمن هذه القيود أن يكون تنفيذ الكود آمنا ومتوقعا. مكتبات علم البيانات الشائعة مثل pandas وmatplotlib وSeaborn مثبتة مسبقا.

ابدأ باستخدام مفسر الكود

أدوات مفسر الشيفرة متاحة تلقائيا في محادثات وكيل SRE الخاصة بك. اطلب من الوكيل أداء المهام باستخدام اللغة الطبيعية.

مثال على المطالبات

جرب هذه التعليمات للبدء:

  • "حلل بيانات CSV هذه وأنشئ مخططا يوضح الحوادث حسب الفئة."
  • "أنشئ ملخص PDF لحوادث اليوم."
  • "حلل ملف JSON هذا واستخرج أنماط الخطأ."
  • "اذكر جميع الملفات في الجلسة وأظهر أحجامها."

أول سكريبت بايثون لك

المثال التالي يوضح كيفية إنشاء تصور توضيحي:

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)

عندما يعمل الكود بنجاح، يعيد الوكيل الصورة داخل المحادثة.

Scenarios

تحليل بيانات الحوادث

استخدم مفسر الشيفرة لتحويل بيانات الحوادث الخام إلى رؤى وتصورات قابلة للتنفيذ.

  1. اطلب من وكيل SRE إنشاء ملف CSV لجميع الحوادث التي حدثت خلال الشهر الماضي باستخدام التعليمات التالية:

    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`.
    
  2. استخدم بايثون لتحليل أنماط الحوادث وتحديد الاتجاهات:

    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)
    

إنشاء مرئيات

أنشئ جداول لنقل الرؤى.

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

أنشئ مستندات PDF منسقة لأصحاب المصلحة.

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()

يقوم الوكيل بإرسال رابط تحميل ملف PDF الذي تم إنشاؤه.

ملفات سجل العمليات

ابحث وحلل ملفات السجل باستخدام أوامر 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

مرجع الأداة

يوفر Code Interpreter الأدوات التالية:

ExecutePythonCode

يشغل كود بايثون في صندوق مفتوح معزول.

المعلمة النوع مطلوب وصف
pythonCode سلسلة نعم كود بايثون للتشغيل (حتى 20,000 حرف)
timeoutSeconds العدد الصحيح لا مهلة التنفيذ في ثوان (الإعداد الافتراضي: 120، الحد الأقصى: 900)

المخرج: تظهر الصور داخل الخط كعلامة تخفيض. تعود ملفات البيانات كروابط تحميل.

Generate PdfReport

ينشئ مستندات PDF من كود بايثون.

المعلمة النوع مطلوب وصف
pythonCode سلسلة نعم كود بايثون الذي ينشئ ملف PDF
expectedOutputFilename سلسلة نعم المسار الذي يتم فيه حفظ ملف PDF (على سبيل المثال، report.pdf)
saveAsFilename سلسلة نعم تحميل اسم الملف (على سبيل المثال، daily_summary.pdf)
timeoutSeconds العدد الصحيح لا مهلة التنفيذ بثوان (الافتراضي: 180، الحد الأقصى: 900)

RunShellCommand

يشغل أوامر الشل في صندوق الرمل.

المعلمة النوع مطلوب وصف
command سلسلة نعم أمر شل لتشغيل
explanation سلسلة لا وصف تسجيل التسجيل باستخدام الأمر
isBackground boolean لا يجب أن يكون كذلك false (وظائف الخلفية غير مدعومة)
timeoutSeconds العدد الصحيح لا مهلة التنفيذ (الافتراضي: 120، الحد الأقصى: 240)

ملاحظه

الأوامر تعمل من /mnt/data/. استخدم المسارات النسبية وأوامر السلسلة باستخدام ; بدلا من &&.

عمليات الملفات

Tool وصف
ReadSessionFile يقرأ محتويات ملف من /mnt/data/.
SearchSessionFiles يبحث عن النصوص داخل الملفات باستخدام أنماط بأسلوب grep.
ListSessionFiles يسرد جميع الملفات في الجلسة التي تحتوي على بيانات وصفية.
GetSessionFile يقوم بتحميل ملف من الجلسة.
UploadFileToSession يرفع ملفا لمزيد من المعالجة.

أنواع الملفات المعتمدة

  • الصور: بابوا غينيا الجديدة، اليابان، GIF، SVG، WebP، BMP، TIFF، EPS
  • البيانات: CSV، TSV، إكسل، JSON، XML، YAML، HDF5، NetCDF، بيكل
  • المستندات: PDF، HTML، Markdown، صيغ Office
  • الكود: بايثون، دفاتر Jupyter، R، SQL
  • الأرشيف: ZIP، TAR، GZ

Limitations

لأسباب أمنية، يمنع النظام العمليات التالية:

الفئة العمليات المحجوبة
توليد العمليات subprocess، ، os.system، os.popenos.spawn*
الوصول إلى الشبكة طلبات HTTP/HTTPS الصادرة
تركيب الحزم pip install، conda install
نظام الملفات الوصول إلى الخارج /mnt/data/

مفسر شفرة استكشاف الأخطاء

فشل تنفيذ الكود

  • تحقق من أن كودك لا يستخدم عمليات محجوبة مثل subprocess مكالمات الشبكة.
  • تحقق من أن جميع مسارات الملفات تشير إلى /mnt/data/.
  • تأكد من أن كودك أقل من 20,000 حرف.

الملفات لا تظهر في المخرج

  • تأكد من حفظ الملفات على /mnt/data/.
  • استخدم ListSessionFiles للتحقق من إنشاء الملفات.
  • تحقق من دعم امتداد الملف.

أخطاء انتهاء الوقت

  • زد المعاملة timeoutSeconds (الحد الأقصى 900 ثانية).
  • قم بتحسين كودك لتقليل وقت التنفيذ.
  • قسم العمليات الكبيرة إلى أجزاء أصغر.