azure-mgmt-fabric-py について
Azure経由でMicrosoft Fabricのキャパシティとリソースを管理する、開発者向けPython SDKスキルです。キャパシティのライフサイクル操作、SKUの照会、長時間実行操作の処理を扱います。
主な機能
- 01キャパシティの作成と削除
- 02キャパシティの取得と一覧表示
- 03更新、一時停止、再開
- 04キャパシティ名の利用可否確認
- 05利用可能なSKUの一覧表示
- 06長時間実行操作の処理
活用シーン
- 01PythonでのFabricキャパシティ構成
- 02キャパシティの状態とSKUの確認
- 03キャパシティの拡張や一時停止
- 04構成前のSKU候補の確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ sickn33/ agentic-awesome-skills --skill azure-mgmt-fabric-pyインストール後、Claude Code で/azure-mgmt-fabric-pyを入力して読み込まれたか確認します。
詳細
Python 用 Azure Fabric 管理 SDK
Microsoft Fabric の容量とリソースをプログラムで管理します。
インストール
pip install azure-mgmt-fabric
pip install azure-identity
環境変数
AZURE_SUBSCRIPTION_ID=<your-subscription-id>
AZURE_RESOURCE_GROUP=<your-resource-group>
認証
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"]
)
Fabric 容量の作成
from azure.mgmt.fabric import FabricMgmtClient
from azure.mgmt.fabric.models import FabricCapacity, FabricCapacityProperties, FabricCapacityAdministration, 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=["[email protected]"]
)
)
)
).result()
print(f"Capacity created: {capacity.name}")
容量の詳細を取得
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}")
リソースグループ内の容量を一覧表示
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}")
サブスクリプション内のすべての容量を一覧表示
all_capacities = client.fabric_capacities.list_by_subscription()
for capacity in all_capacities:
print(f"Capacity: {capacity.name} in {capacity.location}")
容量の更新
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}")
容量の一時停止
アクティブなワークロードを評価したうえで、承認済みの容量のみを一時停止してください。すべての料金が停止すると約束するのではなく、実際の課金条件と契約条件を確認してください。
client.fabric_capacities.begin_suspend(
resource_group_name=resource_group,
capacity_name=capacity_name
).result()
print("Capacity suspended")
容量の再開
一時停止した容量を再開します。
client.fabric_capacities.begin_resume(
resource_group_name=resource_group,
capacity_name=capacity_name
).result()
print("Capacity resumed")
容量の削除
client.fabric_capacities.begin_delete(
resource_group_name=resource_group,
capacity_name=capacity_name
).result()
print("Capacity deleted")
名前の使用可否を確認
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}")
利用可能な SKU を一覧表示
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.fabric_capacities | 容量の CRUD 操作 |
client.operations | 利用可能な操作を一覧表示 |
Fabric SKU
| SKU | 説明 | CU |
|---|---|---|
F2 | エントリーレベル | 2 容量ユニット |
F4 | 小 | 4 容量ユニット |
F8 | 中 | 8 容量ユニット |
F16 | 大 | 16 容量ユニット |
F32 | 特大 | 32 容量ユニット |
F64 | 2 倍の特大 | 64 容量ユニット |
F128 | 4 倍の特大 | 128 容量ユニット |
F256 | 8 倍の特大 | 256 容量ユニット |
F512 | 16 倍の特大 | 512 容量ユニット |
F1024 | 32 倍の特大 | 1024 容量ユニット |
F2048 | 64 倍の特大 | 2048 容量ユニット |
容量の状態
| 状態 | 説明 |
|---|---|
Active | 容量は実行中です |
Paused | 容量は一時停止中です(課金なし) |
Provisioning | 作成中です |
Updating | 変更中です |
Deleting | 削除中です |
Failed | 操作に失敗しました |
長時間実行される操作
変更を伴うすべての操作は、長時間実行操作(LRO)です。.result() を使用して完了を待ちます。
# 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) # import time before this optional manual polling fragment
capacity = poller.result()
ベストプラクティス
- 認証には DefaultAzureCredential を使用します
- コストを抑えるため、未使用の容量を一時停止します
- 小さい SKU から始め、必要に応じてスケールアップします
- コストの追跡と整理に タグを使用します
- 容量を作成する前に 名前の使用可否を確認します
- LRO を適切に処理します — すぐに完了するとは限りません
- 容量管理者を設定します — ワークスペースを管理できるユーザーを指定します
- Azure Monitor のメトリックで 容量の使用状況を監視します
使用するタイミング
このスキルは、概要で説明されているワークフローまたはアクションを実行する場合に適用できます。
制限事項
- このスキルは、タスクが上記の説明範囲に明確に該当する場合にのみ使用してください。
- 出力を、環境固有の検証、テスト、または専門家によるレビューの代わりとして扱わないでください。
- 必要な入力、権限、安全上の境界、または成功基準が不明な場合は、作業を中断して確認してください。
コメント
Markdown 対応