mcpField
A
azure-mgmt-fabric-py

azure-mgmt-fabric-py

github.com/sickn33云与 DevOps48.7k45 次安装今天更新
代码仓库

关于 azure-mgmt-fabric-py

面向开发者的 Python SDK 技能,用于通过 Azure 管理 Microsoft Fabric 容量和资源。内容涵盖容量生命周期操作、SKU 查询以及长时间运行的操作处理。

主要功能

  1. 01创建和删除容量
  2. 02获取并列出容量
  3. 03更新、暂停和恢复容量
  4. 04检查容量名称是否可用
  5. 05列出可用 SKU
  6. 06处理长时间运行的操作

适用场景

  1. 01通过 Python 配置 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确认已加载。

详细介绍

Azure Fabric Management SDK for Python

以编程方式管理 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说明CUs
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 指标监控容量使用情况

适用场景

当需要执行概述中所述的工作流或操作时,可使用此技能。

限制

  • 仅当任务与上述范围明确匹配时,才使用此技能。
  • 不要将输出视为针对特定环境进行验证、测试或专家审查的替代品。
  • 如果缺少必要的输入、权限、安全边界或成功标准,请暂停并要求澄清。

评论

支持 Markdown