mcpField
A
azure-mgmt-fabric-py

azure-mgmt-fabric-py

github.com/sickn33クラウド・DevOps48.7k45 回インストール今日更新
リポジトリ

azure-mgmt-fabric-py について

Azure経由でMicrosoft Fabricのキャパシティとリソースを管理する、開発者向けPython SDKスキルです。キャパシティのライフサイクル操作、SKUの照会、長時間実行操作の処理を扱います。

主な機能

  1. 01キャパシティの作成と削除
  2. 02キャパシティの取得と一覧表示
  3. 03更新、一時停止、再開
  4. 04キャパシティ名の利用可否確認
  5. 05利用可能なSKUの一覧表示
  6. 06長時間実行操作の処理

活用シーン

  1. 01PythonでのFabricキャパシティ構成
  2. 02キャパシティの状態とSKUの確認
  3. 03キャパシティの拡張や一時停止
  4. 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 容量ユニット
F642 倍の特大64 容量ユニット
F1284 倍の特大128 容量ユニット
F2568 倍の特大256 容量ユニット
F51216 倍の特大512 容量ユニット
F102432 倍の特大1024 容量ユニット
F204864 倍の特大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()

ベストプラクティス

  1. 認証には DefaultAzureCredential を使用します
  2. コストを抑えるため、未使用の容量を一時停止します
  3. 小さい SKU から始め、必要に応じてスケールアップします
  4. コストの追跡と整理に タグを使用します
  5. 容量を作成する前に 名前の使用可否を確認します
  6. LRO を適切に処理します — すぐに完了するとは限りません
  7. 容量管理者を設定します — ワークスペースを管理できるユーザーを指定します
  8. Azure Monitor のメトリックで 容量の使用状況を監視します

使用するタイミング

このスキルは、概要で説明されているワークフローまたはアクションを実行する場合に適用できます。

制限事項

  • このスキルは、タスクが上記の説明範囲に明確に該当する場合にのみ使用してください。
  • 出力を、環境固有の検証、テスト、または専門家によるレビューの代わりとして扱わないでください。
  • 必要な入力、権限、安全上の境界、または成功基準が不明な場合は、作業を中断して確認してください。

コメント