Udostępnij za pośrednictwem


Narzędzia biblioteki zmiennych NotebookUtils dla Fabric

Biblioteki zmiennych pomagają uniknąć twardego kodowania wartości w kodzie notatnika. Zamiast edytować kod, należy zaktualizować wartości w bibliotece i pobrać je w czasie wykonywania. Ten wzorzec ułatwia ponowne używanie notesów między zespołami i projektami przez scentralizowanie konfiguracji.

W poniższej tabeli wymieniono dostępne metody biblioteki zmiennych:

Metoda Signature Opis
getLibrary getLibrary(variableLibraryName: String): VariableLibrary Pobiera obiekt z biblioteki zmiennych. Uzyskaj dostęp do zmiennych jako właściwości zwróconego obiektu, na przykład library.variableName. Możesz użyć składni getVariable('name') lub składni nawiasu library['name'] do uzyskania dostępu dynamicznego.
get get(variableReference: String): Any Pobiera pojedynczą wartość zmiennej według ścieżki odwołania w formacie $(/**/libraryName/variableName). Prefiks /**/ jest wymagany. Wartość jest automatycznie wpisywana na podstawie definicji zmiennej.

Definiowanie zmiennych

Zdefiniuj zmienne w bibliotece zmiennych przed użyciem polecenia notebookutils.variableLibrary. Biblioteki zmiennych można tworzyć i zarządzać nimi za pomocą interfejsu użytkownika sieci szkieletowej.

Zrzut ekranu przedstawiający listę zmiennych w bibliotece zmiennych.

Pobieranie biblioteki zmiennych

Użyj getLibrary() polecenia , aby pobrać całą bibliotekę jako obiekt, a następnie uzyskać dostęp do zmiennych jako właściwości. Użyj składni getVariable('name') lub nawiasu library['name'], jeśli potrzebujesz dostępu dynamicznego.

samplevl = notebookutils.variableLibrary.getLibrary("sampleVL")

# Property access
samplevl.test_int
samplevl.test_str

# Method access (useful for dynamic variable names)
samplevl.getVariable("test_int")

# Bracket access
samplevl["test_int"]

W poniższym przykładzie pokazano, jak dynamicznie konstruować ścieżkę pliku przy użyciu wartości biblioteki zmiennych:

samplevl = notebookutils.variableLibrary.getLibrary("sampleVL")

file_path = f"abfss://{samplevl.Workspace_name}@onelake.dfs.fabric.microsoft.com/{samplevl.Lakehouse_name}.Lakehouse/Files/<FileName>.csv"
df = spark.read.format("csv").option("header","true").load(file_path)

display(df)

Uzyskiwanie dostępu do pojedynczej zmiennej przez odwołanie

get() Użyj metody ze wzorcem $(/**/libraryName/variableName) odwołania, aby pobrać pojedynczą wartość zmiennej. Wartość jest automatycznie wpisywana na podstawie definicji zmiennej.

Ważna

Prefiks /**/ jest wymagany we wzorcu odwołania. Pełny wzorzec musi być $(/**/libraryName/variableName), gdzie libraryName jest dokładną nazwą elementu biblioteki zmiennych, a variableName jest zdefiniowaną zmienną w tej bibliotece. Nazwy są wrażliwe na wielkość liter.

notebookutils.variableLibrary.get("$(/**/samplevl/test_int)")
notebookutils.variableLibrary.get("$(/**/samplevl/test_str)")
notebookutils.variableLibrary.get("$(/**/samplevl/test_bool)")

Obsługiwane typy zmiennych

Biblioteki zmiennych obsługują następujące typy danych. Wartości są automatycznie wpisywane podczas ich pobierania — w większości przypadków nie trzeba ich jawnie rzutować.

Typ Opis Przykład
String Wartości tekstowe. "my_connection_string"
Liczba całkowita Liczby całkowite. 42
Boolean Boolean prawda/fałsz. true
Liczba Liczby dziesiętne. 3.14
Data i czas Wartości daty i godziny w formacie ISO 8601. "2025-01-15T08:30:00Z"
Guid Globalnie unikatowe identyfikatory. "123e4567-e89b-12d3-a456-426614174000"
Referencja elementu Odwołania do obsługiwanych elementów Fabric. "workspace/item"

Konfiguracja specyficzna dla środowiska

Biblioteki zmiennych umożliwiają obsługę zestawów wartości, które pozwalają definiować alternatywne zestawy wartości dla tych samych zmiennych — na przykład tworzenia, testowania i produkcji. Każdy obszar roboczy ma jeden aktywny zestaw wartości naraz, a potoki wdrażania mogą automatycznie aktywować odpowiedni zestaw wartości na etapie.

Ten schemat eliminuje konieczność wprowadzania zmian w kodzie podczas przenoszenia notesów w różnych środowiskach.

# These values change based on the active value set (dev/test/prod)
app_config = notebookutils.variableLibrary.getLibrary("app_config")

api_endpoint = app_config.api_endpoint
batch_size = app_config.batch_size
debug_mode = app_config.debug_enabled

print(f"API Endpoint: {api_endpoint}")
print(f"Batch Size: {batch_size}")
print(f"Debug Mode: {debug_mode}")

if debug_mode:
    print("Running in debug mode")

Zagadnienia do rozważenia

Należy pamiętać o następujących kwestiach:

  • Interfejs notebookutils.variableLibrary API obsługuje tylko dostęp do bibliotek zmiennych w tym samym obszarze roboczym. Dostęp między obszarami roboczymi nie jest obsługiwany.
  • Podczas uruchamiania odwołania nie można pobierać bibliotek zmiennych między obszarami roboczymi w notesach podrzędnych.
  • Kod notesu odwołuje się do zmiennych zdefiniowanych w aktywnym zestawie wartości biblioteki zmiennych. Aby użyć różnych wartości, aktywuj inny zestaw wartości w obszarze roboczym lub użyj potoków wdrażania, aby zarządzać zestawami wartości dla każdego środowiska.
  • Jednostka usługi (SPN) nie jest obecnie obsługiwana w przypadku narzędzi biblioteki zmiennych.
  • Biblioteki zmiennych są tylko do odczytu z notesów. Wprowadź zmiany za pomocą interfejsu użytkownika Fabric lub interfejsów API.
  • Każda biblioteka obsługuje maksymalnie 1000 zmiennych i 1000 zestawów wartości, z maksymalnie 10 000 komórek i limitem rozmiaru 1 MB.
  • W nazwach zmiennych i bibliotek wielkość liter jest znacząca. Podczas odwoływania się do zmiennych używaj dokładnego dopasowania nazw.

Tip

Użyj potoków wdrażania, aby automatycznie aktywować odpowiedni zestaw wartości dla każdego etapu (tworzenie, testowanie, prod). Eliminuje to konieczność ręcznego przełączania zestawów wartości lub modyfikowania kodu podczas promowania notesów w różnych środowiskach.