|
Add this skill
npx mdskills install sickn33/azure-mgmt-fabric-pySDK documentation with clear code examples but lacks agent-specific instructions or decision logic
1---2name: azure-mgmt-fabric-py3description: |4 Azure Fabric Management SDK for Python. Use for managing Microsoft Fabric capacities and resources.5 Triggers: "azure-mgmt-fabric", "FabricMgmtClient", "Fabric capacity", "Microsoft Fabric", "Power BI capacity".6---78# Azure Fabric Management SDK for Python910Manage Microsoft Fabric capacities and resources programmatically.1112## Installation1314```bash15pip install azure-mgmt-fabric16pip install azure-identity17```1819## Environment Variables2021```bash22AZURE_SUBSCRIPTION_ID=<your-subscription-id>23AZURE_RESOURCE_GROUP=<your-resource-group>24```2526## Authentication2728```python29from azure.identity import DefaultAzureCredential30from azure.mgmt.fabric import FabricMgmtClient31import os3233credential = DefaultAzureCredential()34client = FabricMgmtClient(35 credential=credential,36 subscription_id=os.environ["AZURE_SUBSCRIPTION_ID"]37)38```3940## Create Fabric Capacity4142```python43from azure.mgmt.fabric import FabricMgmtClient44from azure.mgmt.fabric.models import FabricCapacity, FabricCapacityProperties, CapacitySku45from azure.identity import DefaultAzureCredential46import os4748credential = DefaultAzureCredential()49client = FabricMgmtClient(50 credential=credential,51 subscription_id=os.environ["AZURE_SUBSCRIPTION_ID"]52)5354resource_group = os.environ["AZURE_RESOURCE_GROUP"]55capacity_name = "myfabriccapacity"5657capacity = client.fabric_capacities.begin_create_or_update(58 resource_group_name=resource_group,59 capacity_name=capacity_name,60 resource=FabricCapacity(61 location="eastus",62 sku=CapacitySku(63 name="F2", # Fabric SKU64 tier="Fabric"65 ),66 properties=FabricCapacityProperties(67 administration=FabricCapacityAdministration(68 members=["user@contoso.com"]69 )70 )71 )72).result()7374print(f"Capacity created: {capacity.name}")75```7677## Get Capacity Details7879```python80capacity = client.fabric_capacities.get(81 resource_group_name=resource_group,82 capacity_name=capacity_name83)8485print(f"Capacity: {capacity.name}")86print(f"SKU: {capacity.sku.name}")87print(f"State: {capacity.properties.state}")88print(f"Location: {capacity.location}")89```9091## List Capacities in Resource Group9293```python94capacities = client.fabric_capacities.list_by_resource_group(95 resource_group_name=resource_group96)9798for capacity in capacities:99 print(f"Capacity: {capacity.name} - SKU: {capacity.sku.name}")100```101102## List All Capacities in Subscription103104```python105all_capacities = client.fabric_capacities.list_by_subscription()106107for capacity in all_capacities:108 print(f"Capacity: {capacity.name} in {capacity.location}")109```110111## Update Capacity112113```python114from azure.mgmt.fabric.models import FabricCapacityUpdate, CapacitySku115116updated = client.fabric_capacities.begin_update(117 resource_group_name=resource_group,118 capacity_name=capacity_name,119 properties=FabricCapacityUpdate(120 sku=CapacitySku(121 name="F4", # Scale up122 tier="Fabric"123 ),124 tags={"environment": "production"}125 )126).result()127128print(f"Updated SKU: {updated.sku.name}")129```130131## Suspend Capacity132133Pause capacity to stop billing:134135```python136client.fabric_capacities.begin_suspend(137 resource_group_name=resource_group,138 capacity_name=capacity_name139).result()140141print("Capacity suspended")142```143144## Resume Capacity145146Resume a paused capacity:147148```python149client.fabric_capacities.begin_resume(150 resource_group_name=resource_group,151 capacity_name=capacity_name152).result()153154print("Capacity resumed")155```156157## Delete Capacity158159```python160client.fabric_capacities.begin_delete(161 resource_group_name=resource_group,162 capacity_name=capacity_name163).result()164165print("Capacity deleted")166```167168## Check Name Availability169170```python171from azure.mgmt.fabric.models import CheckNameAvailabilityRequest172173result = client.fabric_capacities.check_name_availability(174 location="eastus",175 body=CheckNameAvailabilityRequest(176 name="my-new-capacity",177 type="Microsoft.Fabric/capacities"178 )179)180181if result.name_available:182 print("Name is available")183else:184 print(f"Name not available: {result.reason}")185```186187## List Available SKUs188189```python190skus = client.fabric_capacities.list_skus(191 resource_group_name=resource_group,192 capacity_name=capacity_name193)194195for sku in skus:196 print(f"SKU: {sku.name} - Tier: {sku.tier}")197```198199## Client Operations200201| Operation | Method |202|-----------|--------|203| `client.fabric_capacities` | Capacity CRUD operations |204| `client.operations` | List available operations |205206## Fabric SKUs207208| SKU | Description | CUs |209|-----|-------------|-----|210| `F2` | Entry level | 2 Capacity Units |211| `F4` | Small | 4 Capacity Units |212| `F8` | Medium | 8 Capacity Units |213| `F16` | Large | 16 Capacity Units |214| `F32` | X-Large | 32 Capacity Units |215| `F64` | 2X-Large | 64 Capacity Units |216| `F128` | 4X-Large | 128 Capacity Units |217| `F256` | 8X-Large | 256 Capacity Units |218| `F512` | 16X-Large | 512 Capacity Units |219| `F1024` | 32X-Large | 1024 Capacity Units |220| `F2048` | 64X-Large | 2048 Capacity Units |221222## Capacity States223224| State | Description |225|-------|-------------|226| `Active` | Capacity is running |227| `Paused` | Capacity is suspended (no billing) |228| `Provisioning` | Being created |229| `Updating` | Being modified |230| `Deleting` | Being removed |231| `Failed` | Operation failed |232233## Long-Running Operations234235All mutating operations are long-running (LRO). Use `.result()` to wait:236237```python238# Synchronous wait239capacity = client.fabric_capacities.begin_create_or_update(...).result()240241# Or poll manually242poller = client.fabric_capacities.begin_create_or_update(...)243while not poller.done():244 print(f"Status: {poller.status()}")245 time.sleep(5)246capacity = poller.result()247```248249## Best Practices2502511. **Use DefaultAzureCredential** for authentication2522. **Suspend unused capacities** to reduce costs2533. **Start with smaller SKUs** and scale up as needed2544. **Use tags** for cost tracking and organization2555. **Check name availability** before creating capacities2566. **Handle LRO properly** — don't assume immediate completion2577. **Set up capacity admins** — specify users who can manage workspaces2588. **Monitor capacity usage** via Azure Monitor metrics259
Full transparency — inspect the skill content before installing.