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.