Fabric için NotebookUtils çalışma zamanı bağlamı

notebookutils.runtime kullanarak geçerli not defteri oturumuyla ilgili bağlam bilgilerini okuyun. Herhangi bir durumu değiştirmeden not defteri ismi, çalışma alanı ayrıntıları, varsayılan lakehouse yapılandırması, işlem hattı yürütme bayrakları ve başvuru yürütme hiyerarşisi gibi meta verileri alabilirsiniz.

Çalışma zamanı bağlamını şu amaçlarla kullanın:

  • Dinamik yapılandırma – Yürütme ortamına göre not defteri davranışını uyarlayın.
  • Koşullu mantık : Not defterinin bir işlem hattında mı yoksa etkileşimli olarak mı çalıştığına bağlı olarak dal mantığı.
  • Hata ayıklama ve izleme – Günlük çıkışına bağlam özellikleri ekleyin ve ilgili yürütmeleri ilişkilendirin.
  • Denetim izleri – Uyumluluk ve köken izleme için yürütme meta verilerini yakalayın.

Uyarı

Çalışma zamanı bağlamı Python, PySpark, Scala ve R not defterlerinde kullanılabilir. Bağlam salt okunurdur; notebookutils.runtime.context tarafından döndürülen özellikleri değiştiremezsiniz. Bazı özellikler yalnızca başvuru çalıştırmaları veya işlem hattı yürütmeleri gibi belirli bağlamlarda doldurulur ve aksi takdirde "null" veya boş değerler döndürebilir.

Oturum bağlamı görüntüleme

notebookutils.runtime.context kullanarak geçerli oturumun not defteri adı, varsayılan lakehouse, çalışma alanı bilgileri ve oturumun işlem hattında çalışıp çalışmadığı gibi bağlam bilgilerini görüntüleyin.

notebookutils.runtime.context

Aşağıdaki tabloda kullanılabilir özellikler açıklanmaktadır.

Mülkiyet Türü Açıklama Availability
currentNotebookName Dize Geçerli not defterinin adı. Tüm bağlamlar
currentNotebookId Dize Geçerli not defterinin benzersiz kimliği. Tüm bağlamlar
currentWorkspaceName Dize Geçerli çalışma alanının adı. Tüm bağlamlar
currentWorkspaceId Dize Geçerli çalışma alanının kimliği. Tüm bağlamlar
defaultLakehouseName Dize Tanımlıysa, varsayılan lakehouse'un görünen adı. Varsayılan lakehouse eklendiğinde
defaultLakehouseId Dize Varsayılan lakehouse'un kimliği, tanımlanmışsa. Varsayılan lakehouse eklendiğinde
defaultLakehouseWorkspaceName Dize Tanımlanmışsa, varsayılan lakehouse'un çalışma alanı adı. Varsayılan lakehouse eklendiğinde
defaultLakehouseWorkspaceId Dize Varsayılan lakehouse'un çalışma alanı kimliği, tanımlanmışsa. Varsayılan lakehouse eklendiğinde
currentRunId Dize Referans çalıştırmasında mevcut çalıştırma kimliği. Yalnızca referans çalıştırmalar
parentRunId Dize İç içe geçmiş koşumları olan bir başvuru koşumunda, bu kimlik ana koşum kimliğidir. Yalnızca iç içe başvuru çalıştırmaları
rootRunId Dize İç içe çalıştırmalara sahip bir başvuru çalıştırmasında, bu kimlik kök çalıştırma kimliğidir. Yalnızca iç içe başvuru çalıştırmaları
isForPipeline Boolean Çalışmanın bir pipeline için yapılıp yapılmadığı. Tüm bağlamlar
isForInteractive Boolean Çalıştırmanın etkileşimli bir oturum olup olmadığını belirleyin. Tüm bağlamlar
isReferenceRun Boolean Geçerli çalıştırmanın bir referans çalıştırması olup olmadığını. Tüm bağlamlar
referenceTreePath Dize İç içe başvurunun ağaç yapısı, yalnızca izleme L2 sayfasındaki anlık görüntü hiyerarşisi için kullanılır. Yalnızca iç içe başvuru çalıştırmaları
rootNotebookId Dize Referans çalıştırmasında kök not defterinin kimliği. Yalnızca referans çalıştırmalar
rootNotebookName Dize Başvuru çalıştırmasında kök not defterinin adı. Yalnızca referans çalıştırmalar
rootWorkspaceId Dize Referans çalıştırmasındaki kök not defterinin çalışma alanı kimliği. Yalnızca referans çalıştırmalar
rootWorkspaceName Dize Referans çalıştırmasındaki kök defterin çalışma alanı adı. Yalnızca referans çalıştırmalar
activityId Dize Geçerli etkinliğin Livy iş kimliği. Tüm bağlamlar
hcReplId Dize Yüksek Eşzamanlılık Modunda REPL Kimliği. Yalnızca yüksek eşzamanlılık modu
clusterId Dize Synapse Spark kümesinin kimliği. Tüm bağlamlar
poolName Dize Kullanılan Spark havuzunun adı. Tüm bağlamlar
environmentId Dize İşin çalıştığı ortam kimliği. Tüm bağlamlar
environmentWorkspaceId Dize Ortamın çalışma alanı kimliği. Tüm bağlamlar
userId Dize Geçerli kullanıcının kullanıcı kimliği. Tüm bağlamlar
userName Dize Geçerli kullanıcının kullanıcı adı. Tüm bağlamlar
currentKernel Dize Geçerli not defteri çekirdeğinin adı. Yalnızca Python Notebook
productType Dize Ürün türü tanımlayıcısı (örneğin, Fabric). Tüm bağlamlar

Kullanım örnekleri

Temel bağlam bilgilerine erişme

Birden çok özelliği okumanız gerektiğinde bağlam nesnesini önbelleğe alın.

context = notebookutils.runtime.context

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

İşlem hattını ve etkileşimli yürütmeyi denetleme

Yürütme moduna bağlı olarak mantığı dallara ayırmak için isForPipeline bayrağını kullanın. Örneğin, işlem hattı çalıştırmalarında daha katı hata işleme uygulayabilirsiniz.

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

Tavsiye

Farklı yürütme bağlamları için üç yönlü dallama uygulamak amacıyla isForPipeline ve isReferenceRun öğelerini birlikte kullanın. Bu örüntü, yeniden deneme sayılarını, günlüğe kaydetme ayrıntı düzeyini ve hata işleme stratejilerini ayarlamanıza olanak tanır. Üretim iş yükleri için, boru hattı ve referans çalıştırmaları genellikle etkileşimli oturumlara kıyasla daha katı hata işleme gerektirir.

Başvuru çalıştırma hiyerarşisini inceleyin

Bir notebook iç içe referans çalıştırmasının parçası olarak çalıştırıldığında, geçerli çalıştırmadan köke kadar hiyerarşiyi baştan sona izleyebilirsiniz.

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

Günlük kayıtlarına bağlam ekle

Daha kolay hata ayıklama ve izleme için günlük iletilerini yürütme bağlamıyla zenginleştirin:

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