Utilidades de la biblioteca de variables NotebookUtils para Fabric

Las bibliotecas de variables le ayudan a evitar valores de codificación rígida en el código del cuaderno. En lugar de editar código, actualizará los valores de la biblioteca y los recuperará en tiempo de ejecución. Este patrón le ayuda a reutilizar cuadernos en equipos y proyectos mediante la centralización de la configuración.

En la tabla siguiente se enumeran los métodos de biblioteca de variables disponibles:

Método Signature Descripción
getLibrary getLibrary(variableLibraryName: String): VariableLibrary Recupera un objeto de biblioteca de variables. Acceda a variables como propiedades en el objeto devuelto, como library.variableName. Puede usar getVariable('name') o la sintaxis library['name'] de corchetes para el acceso dinámico.
get get(variableReference: String): Any Recupera un único valor de variable mediante su ruta de acceso de referencia con el formato $(/**/libraryName/variableName). Se requiere el /**/ prefijo. El valor se escribe automáticamente en función de la definición de variable.

Definición de variables

Defina las variables de la biblioteca de variables antes de usar notebookutils.variableLibrary. Puede crear y administrar bibliotecas de variables a través de la interfaz de usuario de Fabric.

Captura de pantalla de la lista de variables en la biblioteca de variables.

Recuperación de la biblioteca de variables

Use getLibrary() para recuperar toda la biblioteca como un objeto y, a continuación, acceda a variables como propiedades. Use la sintaxis getVariable('name') o library['name'] de corchetes cuando necesite acceso dinámico.

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

En el ejemplo siguiente se muestra cómo construir dinámicamente una ruta de acceso de archivo mediante valores de biblioteca de variables:

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)

Acceso a una sola variable por referencia

Use el get() método con el patrón $(/**/libraryName/variableName) de referencia para recuperar un único valor de variable. El valor se escribe automáticamente en función de la definición de variable.

Importante

El /**/ prefijo es necesario en el patrón de referencia. El patrón completo debe ser $(/**/libraryName/variableName), donde libraryName es el nombre exacto del elemento de biblioteca de variables y variableName es la variable definida en esa biblioteca. Los nombres distinguen mayúsculas de minúsculas.

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

Tipos de variables admitidos

Las bibliotecas de variables admiten los siguientes tipos de datos. Los valores se escriben automáticamente al recuperarlos; no es necesario convertirlos explícitamente en la mayoría de los casos.

Tipo Descripción Ejemplo
String Valores de texto. "my_connection_string"
Entero Números enteros. 42
Boolean Boolean verdadero/falso. true
Número Números decimales. 3.14
DateTime Valores de fecha y hora en formato ISO 8601. "2025-01-15T08:30:00Z"
Guid Identificadores únicos globales. "123e4567-e89b-12d3-a456-426614174000"
Referencia de elemento Referencias a componentes de Fabric compatibles. "workspace/item"

Configuración específica del entorno

Las bibliotecas de variables admiten conjuntos de valores, que permiten definir conjuntos alternativos de valores para las mismas variables, por ejemplo, desarrollo, prueba y prod. Cada área de trabajo tiene un valor activo establecido a la vez y las canalizaciones de implementación pueden activar automáticamente el conjunto de valores adecuado por fase.

Este patrón elimina la necesidad de cambios de código al promover cuadernos entre entornos:

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

Consideraciones

Tenga en cuenta las consideraciones siguientes:

  • La notebookutils.variableLibrary API solo admite el acceso a las bibliotecas de variables dentro del mismo área de trabajo. No se admite el acceso entre áreas de trabajo.
  • No se pueden recuperar bibliotecas de variables entre áreas de trabajo de cuadernos secundarios durante una ejecución de referencia.
  • El código del cuaderno hace referencia a las variables definidas en el conjunto de valores activos de la biblioteca de variables. Para usar valores diferentes, active un conjunto de valores diferente en el área de trabajo o use canalizaciones de implementación para administrar conjuntos de valores para cada entorno.
  • La entidad de servicio (Service Principal, SPN) no es compatible actualmente con las utilidades de la biblioteca de variables.
  • Las bibliotecas de variables son de solo lectura cuando se accede desde los cuadernos. Realice cambios a través de la interfaz de usuario o las API de Fabric.
  • Cada biblioteca admite hasta 1000 variables y 1000 conjuntos de valores, con un máximo de 10 000 celdas y un límite de tamaño de 1 MB.
  • Los nombres de variables y bibliotecas son sensibles a mayúsculas y minúsculas. Use coincidencias exactas de nombres al hacer referencia a variables.

Sugerencia

Utiliza canalizaciones de implementación para activar automáticamente el conjunto de valores adecuado para cada fase (desarrollo, prueba, producción). Esto elimina la necesidad de conmutar manualmente los conjuntos de valores o modificar el código al mover cuadernos entre entornos.