Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Azure Fabric Management SDK for Python. Use for managing Microsoft Fabric capacities and resources. Triggers: "azure-mgmt-fabric", "FabricMgmtClient", "Fabric capacity", "Microsoft Fabric", "Power BI capacity".
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 107% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 57% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 69% | 0% |
| case-15 | ✗→✓ | ▲ Improved | 128% | 0% |
| case-16 | ✗→✓ | ▲ Improved | 146% | 0% |
Manage Microsoft Fabric capacities and resources programmatically.
bashpip install azure-mgmt-fabric pip install azure-identity
bashAZURE_SUBSCRIPTION_ID=<your-subscription-id> # Required for all auth methods AZURE_RESOURCE_GROUP=<your-resource-group> # Required for all auth methods AZURE_TOKEN_CREDENTIALS=prod # Required only if DefaultAzureCredential is used in production
> 🔑 Two rules apply to every code sample below: > > 1. Prefer DefaultAzureCredential. It works locally (Azure CLI / VS Code / Developer CLI) and in Azure (managed identity, workload identity) with no code change. Avoid connection strings, account/API keys — they bypass Entra audit and rotation. > - Local dev: DefaultAzureCredential works as-is. > - Production: set AZURE_TOKEN_CREDENTIALS=prod (or AZURE_TOKEN_CREDENTIALS=<specific_credential>) to constrain the credential chain to production-safe credentials. > 2. Wrap every client in a context manager so HTTP transports, sockets, and token caches are released deterministically: > - Sync: with <Client>(...) as client: > - Async: async with <Client>(...) as client: and async with DefaultAzureCredential() as credential: (from azure.identity.aio) > > Snippets may abbreviate this setup, but production code should always follow both rules.
pythonfrom azure.identity import DefaultAzureCredential, ManagedIdentityCredential from azure.mgmt.fabric import FabricMgmtClient import os # Local dev: DefaultAzureCredential. Production: set AZURE_TOKEN_CREDENTIALS=prod or AZURE_TOKEN_CREDENTIALS=<specific_credential> credential = DefaultAzureCredential(require_envvar=True) # Or use a specific credential directly in production: # See https://learn.microsoft.com/python/api/overview/azure/identity-readme?view=azure-python#credential-classes # credential = ManagedIdentityCredential() with FabricMgmtClient( credential=credential, subscription_id=os.environ["AZURE_SUBSCRIPTION_ID"] ) as client: # Use `client` for all subsequent operations (see examples below) ...
pythonfrom azure.mgmt.fabric import FabricMgmtClient from azure.mgmt.fabric.models import FabricCapacity, FabricCapacityProperties, CapacitySku from azure.identity import DefaultAzureCredential import os resource_group = os.environ["AZURE_RESOURCE_GROUP"] capacity_name = "myfabriccapacity" credential = DefaultAzureCredential() with FabricMgmtClient( credential=credential, subscription_id=os.environ["AZURE_SUBSCRIPTION_ID"] ) as client: 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}")
pythoncapacity = 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}")
pythoncapacities = 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}")
pythonall_capacities = client.fabric_capacities.list_by_subscription() for capacity in all_capacities: print(f"Capacity: {capacity.name} in {capacity.location}")
pythonfrom 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}")
Pause capacity to stop billing:
pythonclient.fabric_capacities.begin_suspend( resource_group_name=resource_group, capacity_name=capacity_name ).result() print("Capacity suspended")
Resume a paused capacity:
pythonclient.fabric_capacities.begin_resume( resource_group_name=resource_group, capacity_name=capacity_name ).result() print("Capacity resumed")
pythonclient.fabric_capacities.begin_delete( resource_group_name=resource_group, capacity_name=capacity_name ).result() print("Capacity deleted")
pythonfrom 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}")
pythonskus = 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}")
| Operation | Method | |-----------|--------| | client.fabric_capacities | Capacity CRUD operations | | client.operations | List available operations |
| 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 |
| State | Description | |-------|-------------| | Active | Capacity is running | | Paused | Capacity is suspended (no billing) | | Provisioning | Being created | | Updating | Being modified | | Deleting | Being removed | | Failed | Operation failed |
All mutating operations are long-running (LRO). Use .result() to wait:
python# 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()
azure.xxx sync clients with azure.xxx.aio async clients in the same call path. Choose one mode per module.with Client(...) as client: (sync) or async with Client(...) as client: (async). For async DefaultAzureCredential from azure.identity.aio, also use async with credential: so tokens and transports are cleaned up.DefaultAzureCredential for code that runs locally. Use a specific token credential for code that runs in Azure.| File | Contents | |------|----------| | references/capabilities.md | Additional non-hero capabilities, operation-group coverage, and production checklists. | | references/non-hero-scenarios.md | Dedicated non-hero examples for secondary/advanced scenarios. |
Other measured skills in the registry, with their headline benchmark lift.