Creando ítems mediante Fabric CLI

Antes de abordar la propia creación de ítems en Microsoft Fabric os presento la herramienta que se va a utilizar: Fabric CLI

¿Qué es Fabric CLI?
Es la interfaz en línea de comandos oficial de Microsoft Fabric. Está diseñada para que desarrolladores, ingenieros de datos y equipos de DevOps puedan explorar, gestionar y automatizar recursos de Microsoft Fabric desde el propio terminal.

Es, literalmente, una experiencia tipo bash (ls, cd, mkdir, cp, rm) pero aplicada a Fabric, puedes:

  • Navegar por workspaces como si fuera un sistemas de carpetas.
  • Ejecutar pipelines, copiar ítems, gestionar lakehouses.
  • Automatizar despliegues mediante CI/CD.
  • Y todo desde scripts que se adaptan a las buenas prácticas de versionado y control de código.

Bueno, ahora que ya sabes qué es Fabric CLI, vamos a comenzar con un ejemplo básico para la creación de elementos en un workspace de Microsoft Fabric con Visual Studio Code.

Comenzamos
La creación de ítems mediante Fabric CLI no es solo una cuestión de ejecutar comandos. En contextos empresariales exige una preparación rigurosa, una estrategia sólida de DataOps y un setup adecuado para garantizar que los desarrollos sean sostenibles, auditables y seguros a lo largo del tiempo. Las organizaciones que ya trabajan con Microsoft Fabrc saben que el valor real no proviene únicamente de los pipelines, notebooks o workspaces que se crean, sino de cómo se crean, dónde, con que estándares y bajo qué modelo operativo.

Antes de comenzar a generar elementos con Fabric CLI, es fundamental contar con un entorno correctamente configurado. Distintos proyectos internos evidencian que un despliegue eficaz depende de varios requisitos iniciales, como disponer de permisos adecuados para crear y gestionar recursos, asegurar una insfraestructura de red con conectividad completa hacia los servicios de Azure, habilitar correctamente la capacidad de Fabric y mantener alineada la región del proyecto (por ejemplo, cuando se utiliza Azure DevOps com repositorio y motor de CI/CD) para evitar incompatibilidades que afecten a la ejecución de procesos o rendimiento.

Este enfoque DataOps también implica adoptar una estrategi corporativa clara para la organización y el ciclo de vida de los datos. Es muy importante definir un esquema de gobernanza, normalización y modelado consistente, así como gestionar adecuadamente los roles, accesos y fuentes de datos involucradas, especialmente cuando el objetivo es orquestar procesos automatizados o reproducibles a través de Fabric CLI. Aspectos como la organización de entornos (DEV, TEST, PROD), la consistencia de nombres, el versionado de objetos y el control de configuraciones por entorno son esenciales para evitar desviaciones y facilitar la automatización porterior.

Del mismo modo, la preparación pevia debe contemplar la existencia de documentación técnica que describa estructuras, dependencias, requisitos de seguridad, modelos de datos, procesos ETL propuestos y cualquier restricción operativa asociada al dominio o caso de uso. Esta información se vuelve crítica cuando Fabric CLI se integra con flujos de trabajo DataOps, ya que muchos ítems creados desde línea de comandos (workspaces, pipelines o configuraciones de conectividad) dependen directamente de estos metadatos para garantizar trazabilidad y estabilidad.

Además, los equipos que implementan Fabric dentro de ciclo DataOps destacan la necesidad de incluir prácticas de monitorización, auditoría y control continuo desde el minuto cero. Esto incluye la configuración de capacidades, métricas de consumo, supervisión de actividades dentro de los workspaces y la integración con herramientas de gobieno del dato para evaluar el uso, detactar anomalías y asegurar la coherencia en todas las etapas del pipeline, reforzando así los principios de observabilidad y calidad propios de las buenas prácticas DataOps.

Paso a paso
Como buenas prácticas, se recomienda crear un environment para configurar ahí todo el set de librerías y elementos necesarios para desarrollar el proyecto / trabajo que se tenga pendiente. Para ello, se usará Visual Code con Python instalado. Se recomienda seguir los siguientes pasos:

Python
##Crear y activar el entorno donde trabajar
cd Path_Carpeta_Proyecto
py -m venv .venv
.\.venv\Scripts\Activate.p
##Actualizar pip e instalar MS-Fabric-CLI
python -m pip install --upgrade pip
python -m pip install --upgrade ms-fabric-cl
##Verificar que fab está disponible dentro del entorno recién creado
fab --version

El resultado, si todo ha funcionado correctamente, será algo como esto:

Una vez se tiene el setup completado, hay que hacer login frente a Fabric. Para ello, se ejecuta:

Python
fab auth login

Y acto seguido, se muestran todas las opciones para hacer login que están disponibles.

En nuestro caso, es la primera opción ya que no se dispone de Service Principal y/o Managed Identity. Se complete el proceso al recibir este mensaje desde el navegador.

Por supuesto, en proyectos empresariales que hagan uso de soluciones como Azure DevOps o GitHub, se recomienda incluir el proceso de login dentro del propio código yaml. El ejemplo que aparece en la documentación oficial es este:

azure-pipeline.yml
YAML
# Example Azure Pipeline YAML file for using Fabric CLI
steps:
- task: UsePythonVersion@0
inputs:
versionSpec: '3.10'
displayName: 'Use Python 3.10'
- task: AzureCLI@2
displayName: 'Azure CLI Login'
inputs:
azureSubscription: <your-service-connection-name>
addSpnToEnvironment: true
scriptType: bash
scriptLocation: inlineScript
inlineScript: |
echo "##vso[task.setvariable variable=ARM_CLIENT_ID]$servicePrincipalId"
echo "##vso[task.setvariable variable=ARM_ID_TOKEN]$idToken"
echo "##vso[task.setvariable variable=ARM_TENANT_ID]$tenantId"
- script: |
python -m pip install --upgrade pip
python -m pip install ms-fabric-cli
fab config set encryption_fallback_enabled true
fab auth login -u $(ARM_CLIENT_ID) --tenant $(ARM_TENANT_ID) --federated-token $(ARM_ID_TOKEN)
fab ls
displayName: 'Fabric CLI'

Previo a crear un nuevo workspace y asignarlo a una capacidad previamente creada en Azure, es recomendable listar todas las capacidades actuales en una suscripción, Para ello, solo es necesario ejecutar el siguiente comando:

Python
fab api -A azure subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Fabric/capacities?api-version=2023-11-01

La ejecución devuelve un JSON con una estructura algo como esto

JSON
{
"status_code": 200,
"text": {
"value": [
{
"properties": {
"provisioningState": "Succeeded",
"state": "Paused",
"administration": {
"members": [
""
]
}
},
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/RgName/providers/Microsoft.Fabric/capacities/CapacityName",
"name": "",
"type": "Microsoft.Fabric/capacities",
"location": "Azure Region",
"sku": {
"name": "SKU",
"tier": "Fabric"
},
"tags": {}
}
]
}
}

Se pueden listar los workspaces ejecutando

Python
fab api workspaces

Y finalmente crear un nuevo workspace asignado a la capacidad que deseemos tan solo ejecutando:

Python
fab create BlogWorkSpace.Workspace -P capacityname=capac1

Y si se accede a la aplicación de Fabric y se filtra por el nombre del Workspace recién creado, se puede ver que

Que, efectivamente, se ha creado de forma correcta.

CONCLUSIÓN
En resumen, la creación de ítems con Fabric CLI debe entenderse como una extensión natural del framework y buenas prácticas DataOps de la organización: automatización sí, pero sustentada sobre estándares, gobernanza y un setup empresarial sólido. Esta combinación es la que permite que Fabric CLI no solo acelere el delivery técnico, sino que se convierta en una pieza dentro del ciclo de vida del dato, facilitando implementaciones repetible, consistentes, auditables y alienadas con la estrategia global de la organización.

Publicado por alb3rtoalonso

Soy un enamorado del poder de los datos. Entusiasta de la mejora y formación continua.

Deja un comentario