Konteks lingkungan Runtime NotebookUtils untuk Fabric

Gunakan notebookutils.runtime untuk membaca informasi konteks tentang sesi buku catatan saat ini. Anda dapat mengambil metadata seperti nama buku catatan, detail ruang kerja, konfigurasi lakehouse default, bendera eksekusi alur, dan hierarki eksekusi referensi tanpa memodifikasi status apa pun.

Gunakan konteks runtime untuk:

  • Konfigurasi dinamis – Menyesuaikan perilaku notebook berdasarkan lingkungan eksekusi.
  • Logika bersyarat – Logika cabang tergantung pada apakah buku catatan berjalan dalam alur atau secara interaktif.
  • Penelusuran kesalahan dan pemantauan – Sertakan properti konteks dalam output log dan menghubungkan eksekusi terkait.
  • Jejak audit – Pengumpulan metadata eksekusi untuk kepatuhan dan pelacakan silsilah.

Nota

Konteks runtime tersedia di notebook Python, PySpark, Scala, dan R. Konteks bersifat baca-saja—Anda tidak dapat mengubah properti apa pun yang dikembalikan oleh notebookutils.runtime.context. Beberapa properti hanya diisi dalam konteks tertentu, seperti eksekusi referensi atau eksekusi alur, dan mungkin mengembalikan null atau mengosongkan nilai sebaliknya.

Menampilkan konteks sesi

Gunakan notebookutils.runtime.context untuk melihat informasi konteks untuk sesi saat ini, termasuk nama notebook, lakehouse default, informasi ruang kerja, dan apakah sesi berjalan dalam pipeline.

notebookutils.runtime.context

Tabel berikut ini menjelaskan properti yang tersedia.

Harta benda Tipe Deskripsi Availability
currentNotebookName string Nama buku catatan saat ini. Semua konteks
currentNotebookId string ID unik buku catatan saat ini. Semua konteks
currentWorkspaceName string Nama ruang kerja saat ini. Semua konteks
currentWorkspaceId string ID dari ruang kerja saat ini. Semua konteks
defaultLakehouseName string Nama tampilan lakehouse default, jika ditentukan. Ketika default lakehouse terhubung
defaultLakehouseId string ID lakehouse bawaan, jika ditentukan. Ketika default lakehouse terhubung
defaultLakehouseWorkspaceName string Nama ruang kerja dari lakehouse bawaan, jika ditentukan. Ketika default lakehouse terhubung
defaultLakehouseWorkspaceId string ID ruang kerja lakehouse default, jika ditentukan. Ketika default lakehouse terhubung
currentRunId string Dalam eksekusi referensi, ID eksekusi saat ini. Referensi hanya dijalankan
parentRunId string Dalam eksekusi referensi dengan eksekusi berlapis, ID ini adalah ID eksekusi induk. Referensi bersarang hanya dijalankan
rootRunId string Dalam eksekusi referensi dengan eksekusi berlapis, ID ini adalah ID eksekusi root. Referensi bersarang hanya dijalankan
isForPipeline Boolean Apakah pelaksanaan adalah untuk pipeline. Semua konteks
isForInteractive Boolean Apakah eksekusi adalah sesi interaktif. Semua konteks
isReferenceRun Boolean Apakah eksekusi saat ini adalah eksekusi referensi. Semua konteks
referenceTreePath string Struktur pohon dari pelaksanaan referensi bersarang, digunakan hanya untuk hierarki snapshot pada halaman pemantauan L2. Referensi bersarang hanya dijalankan
rootNotebookId string ID buku catatan akar dalam eksekusi referensi. Referensi hanya dijalankan
rootNotebookName string Nama buku catatan induk dalam proses referensi. Referensi hanya dijalankan
rootWorkspaceId string ID ruang kerja notebook utama dalam pengoperasian referensi. Referensi hanya dijalankan
rootWorkspaceName string Nama ruang kerja buku catatan akar dalam eksekusi referensi. Referensi hanya dijalankan
activityId string ID pekerjaan Livy untuk aktivitas saat ini. Semua konteks
hcReplId string ID REPL dalam Mode Konkurensi Tinggi. Mode konsurensi tinggi saja
clusterId string Identitas klaster Azure Synapse Spark. Semua konteks
poolName string Nama kumpulan Spark yang digunakan. Semua konteks
environmentId string ID lingkungan di mana pekerjaan dijalankan. Semua konteks
environmentWorkspaceId string ID lingkungan ruang kerja. Semua konteks
userId string ID pengguna saat ini. Semua konteks
userName string Nama pengguna dari pengguna saat ini. Semua konteks
currentKernel string Nama kernel notebook digital saat ini. Hanya notebook Python
productType string Pengidentifikasi jenis produk (misalnya, Fabric). Semua konteks

Contoh penggunaan

Mengakses informasi konteks dasar

Cache objek konteks saat Anda perlu membaca beberapa properti.

context = notebookutils.runtime.context

print(f"Notebook: {context['currentNotebookName']}")
print(f"Workspace: {context['currentWorkspaceName']}")
print(f"Lakehouse: {context['defaultLakehouseName'] or 'None'}")

Periksa alur vs. eksekusi interaktif

Gunakan bendera isForPipeline untuk logika bercabang bergantung pada mode eksekusi. Misalnya, Anda dapat menerapkan penanganan kesalahan yang lebih ketat dalam pelaksanaan pipeline.

context = notebookutils.runtime.context

if context['isForPipeline']:
    print("Pipeline mode: Strict error handling")
    error_handling = "strict"
    max_retries = 3
elif context['isReferenceRun']:
    print("Running as a referenced notebook")
    error_handling = "strict"
    max_retries = 2
else:
    print("Interactive mode: Lenient error handling")
    error_handling = "lenient"
    max_retries = 1

Tip

Gunakan isForPipeline dan isReferenceRun bersama-sama untuk menerapkan pencabangan tiga arah untuk konteks eksekusi yang berbeda. Pola ini membantu Anda menyesuaikan jumlah percobaan ulang, tingkat penggunaan log, dan strategi penanganan kesalahan. Untuk beban kerja produksi, eksekusi alur dan referensi biasanya memerlukan penanganan kesalahan yang lebih ketat daripada sesi interaktif.

Memeriksa hierarki pengoperasian referensi

Saat buku catatan berjalan sebagai bagian dari eksekusi referensi berlapis, Anda dapat melacak hierarki lengkap dari eksekusi saat ini kembali ke akar:

context = notebookutils.runtime.context

if context['isReferenceRun']:
    print("Reference Run Context:")
    print(f"  Current Run ID: {context['currentRunId']}")
    print(f"  Parent Run ID: {context['parentRunId']}")
    print(f"  Root Run ID: {context['rootRunId']}")
    print(f"  Root Notebook: {context['rootNotebookName']}")
else:
    print("Not a reference run")

Sertakan konteks dalam pengelogan

Perkaya pesan log dengan konteks eksekusi untuk penelusuran kesalahan dan pemantauan yang lebih mudah:

context = notebookutils.runtime.context

run_id = context.get("currentRunId") or "interactive"
log_prefix = (
    f"[{context['currentWorkspaceName']}/{context['currentNotebookName']}]"
    f" run={run_id}"
)

print(f"{log_prefix} Processing started")