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.
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.
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: