azure-mgmt-fabric-py

npx skills add https://github.com/microsoft/skills --skill azure-mgmt-fabric-py

Kit de gestion Azure Fabric pour Python

Gérez les capacités et ressources Microsoft Fabric par programmation.

Installation

pip install azure-mgmt-fabric
pip install azure-identity

Variables d'environnement

AZURE_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

Authentification

from 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()

client = FabricMgmtClient(
    credential=credential,
    subscription_id=os.environ["AZURE_SUBSCRIPTION_ID"]
)

Créer une capacité Fabric

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}")

Obtenir les détails de la capacité

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}")

Lister les capacités d'un groupe de ressources

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}")

Lister toutes les capacités de l'abonnement

all_capacities = client.fabric_capacities.list_by_subscription()

for capacity in all_capacities:
    print(f"Capacity: {capacity.name} in {capacity.location}")

Mettre à jour la capacité

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}")

Suspendre la capacité

Pause la capacité pour arrêter la facturation :

client.fabric_capacities.begin_suspend(
    resource_group_name=resource_group,
    capacity_name=capacity_name
).result()

print("Capacity suspended")

Reprendre la capacité

Reprendre une capacité en pause :

client.fabric_capacities.begin_resume(
    resource_group_name=resource_group,
    capacity_name=capacity_name
).result()

print("Capacity resumed")

Supprimer la capacité

client.fabric_capacities.begin_delete(
    resource_group_name=resource_group,
    capacity_name=capacity_name
).result()

print("Capacity deleted")

Vérifier la disponibilité du nom

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}")

Lister les SKU disponibles

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}")

Opérations du client

Opération Méthode
client.fabric_capacities Opérations CRUD de capacité
client.operations Lister les opérations disponibles

SKU Fabric

SKU Description CUs
F2 Entrée de gamme 2 Capacity Units
F4 Petit 4 Capacity Units
F8 Moyen 8 Capacity Units
F16 Grand 16 Capacity Units
F32 Très grand 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 1 024 Capacity Units
F2048 64X-Large 2 048 Capacity Units

États de la capacité

État Description
Active La capacité est en cours d'exécution
Paused La capacité est suspendue (pas de facturation)
Provisioning En cours de création
Updating En cours de modification
Deleting En cours de suppression
Failed L'opération a échoué

Opérations longues durée

Toutes les opérations de mutation sont des opérations longues durée (LRO). Utilisez .result() pour attendre :

# Attente synchrone
capacity = client.fabric_capacities.begin_create_or_update(...).result()

# Ou interroger manuellement
poller = client.fabric_capacities.begin_create_or_update(...)
while not poller.done():
    print(f"Status: {poller.status()}")
    time.sleep(5)
capacity = poller.result()

Bonnes pratiques

  1. Utiliser DefaultAzureCredential pour l'authentification
  2. Suspendre les capacités inutilisées pour réduire les coûts
  3. Commencer par des SKU plus petits et augmenter la taille selon les besoins
  4. Utiliser les tags pour le suivi des coûts et l'organisation
  5. Vérifier la disponibilité du nom avant de créer des capacités
  6. Gérer correctement les LRO — ne pas supposer une completion immédiate
  7. Configurer les administrateurs de capacité — spécifier les utilisateurs qui peuvent gérer les espaces de travail
  8. Surveiller l'utilisation de la capacité via les métriques Azure Monitor

Skills similaires