azure-mgmt-fabric-py
Azure Fabric Management SDK for Python. Use for managing Microsoft Fabric capacities and resources.
- risk
- unknown
- source
- community
- date added
- 2026-02-27
Azure Fabric Management SDK for Python
Manage Microsoft Fabric capacities and resources programmatically.
Installation
pip install azure-mgmt-fabric pip install azure-identity
Environment Variables
AZURE_SUBSCRIPTION_ID=<your-subscription-id> AZURE_RESOURCE_GROUP=<your-resource-group>
Authentication
from azure.identity import DefaultAzureCredential from azure.mgmt.fabric import FabricMgmtClient import os credential = DefaultAzureCredential() client = FabricMgmtClient( credential=credential, subscription_id=os.environ["AZURE_SUBSCRIPTION_ID"] )
Create Fabric Capacity
from azure.mgmt.fabric import FabricMgmtClient from azure.mgmt.fabric.models import FabricCapacity, FabricCapacityProperties, CapacitySku from azure.identity import DefaultAzureCredential import os credential = DefaultAzureCredential() client = FabricMgmtClient( credential=credential, subscription_id=os.environ["AZURE_SUBSCRIPTION_ID"] ) resource_group = os.environ["AZURE_RESOURCE_GROUP"] capacity_name = "myfabriccapacity" capacity = client.fabric_capacities.begin_create_or_update( resource_group_name=resource_group, capacity_name=capacity_name, resource=FabricCapacity( location="eastus", sku=CapacitySku( name="F2", # Fabric SKU tier="Fabric" ), properties=FabricCapacityProperties( administration=FabricCapacityAdministration( members=["user@contoso.com"] ) ) ) ).result() print(f"Capacity created: {capacity.name}")
Get Capacity Details
capacity = client.fabric_capacities.get( resource_group_name=resource_group, capacity_name=capacity_name ) print(f"Capacity: {capacity.name}") print(f"SKU: {capacity.sku.name}") print(f"State: {capacity.properties.state}") print(f"Location: {capacity.location}")
List Capacities in Resource Group
capacities = client.fabric_capacities.list_by_resource_group( resource_group_name=resource_group ) for capacity in capacities: print(f"Capacity: {capacity.name} - SKU: {capacity.sku.name}")
List All Capacities in Subscription
all_capacities = client.fabric_capacities.list_by_subscription() for capacity in all_capacities: print(f"Capacity: {capacity.name} in {capacity.location}")
Update Capacity
from azure.mgmt.fabric.models import FabricCapacityUpdate, CapacitySku updated = client.fabric_capacities.begin_update( resource_group_name=resource_group, capacity_name=capacity_name, properties=FabricCapacityUpdate( sku=CapacitySku( name="F4", # Scale up tier="Fabric" ), tags={"environment": "production"} ) ).result() print(f"Updated SKU: {updated.sku.name}")
Suspend Capacity
Pause capacity to stop billing:
client.fabric_capacities.begin_suspend( resource_group_name=resource_group, capacity_name=capacity_name ).result() print("Capacity suspended")
Resume Capacity
Resume a paused capacity:
client.fabric_capacities.begin_resume( resource_group_name=resource_group, capacity_name=capacity_name ).result() print("Capacity resumed")
Delete Capacity
client.fabric_capacities.begin_delete( resource_group_name=resource_group, capacity_name=capacity_name ).result() print("Capacity deleted")
Check Name Availability
from azure.mgmt.fabric.models import CheckNameAvailabilityRequest result = client.fabric_capacities.check_name_availability( location="eastus", body=CheckNameAvailabilityRequest( name="my-new-capacity", type="Microsoft.Fabric/capacities" ) ) if result.name_available: print("Name is available") else: print(f"Name not available: {result.reason}")
List Available SKUs
skus = client.fabric_capacities.list_skus( resource_group_name=resource_group, capacity_name=capacity_name ) for sku in skus: print(f"SKU: {sku.name} - Tier: {sku.tier}")
Client Operations
| Operation | Method |
|---|---|
client.fabric_capacities | Capacity CRUD operations |
client.operations | List available operations |
Fabric SKUs
| SKU | Description | CUs |
|---|---|---|
F2 | Entry level | 2 Capacity Units |
F4 | Small | 4 Capacity Units |
F8 | Medium | 8 Capacity Units |
F16 | Large | 16 Capacity Units |
F32 | X-Large | 32 Capacity Units |
F64 | 2X-Large | 64 Capacity Units |
F128 | 4X-Large | 128 Capacity Units |
F256 | 8X-Large | 256 Capacity Units |
F512 | 16X-Large | 512 Capacity Units |
F1024 | 32X-Large | 1024 Capacity Units |
F2048 | 64X-Large | 2048 Capacity Units |
Capacity States
| State | Description |
|---|---|
Active | Capacity is running |
Paused | Capacity is suspended (no billing) |
Provisioning | Being created |
Updating | Being modified |
Deleting | Being removed |
Failed | Operation failed |
Long-Running Operations
All mutating operations are long-running (LRO). Use .result() to wait:
# Synchronous wait capacity = client.fabric_capacities.begin_create_or_update(...).result() # Or poll manually poller = client.fabric_capacities.begin_create_or_update(...) while not poller.done(): print(f"Status: {poller.status()}") time.sleep(5) capacity = poller.result()
Best Practices
- Use DefaultAzureCredential for authentication
- Suspend unused capacities to reduce costs
- Start with smaller SKUs and scale up as needed
- Use tags for cost tracking and organization
- Check name availability before creating capacities
- Handle LRO properly — don't assume immediate completion
- Set up capacity admins — specify users who can manage workspaces
- Monitor capacity usage via Azure Monitor metrics
When to Use
This skill is applicable to execute the workflow or actions described in the overview.