You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中为新建的Azure文件共享分配现有备份策略?

Python实现Azure文件共享绑定现有备份策略

以下是对应你提供的PowerShell代码的Python实现,基于Azure SDK for Python的azure-mgmt-recoveryservicesbackup模块:

前置准备

  • 确保已安装依赖包:
    pip install azure-mgmt-recoveryservicesbackup azure-identity
    
  • 配置Azure身份验证(可通过环境变量、Azure CLI登录或服务主体等方式,示例采用DefaultAzureCredential自动适配常见验证方式)

代码实现

from azure.identity import DefaultAzureCredential
from azure.mgmt.recoveryservicesbackup import RecoveryServicesBackupClient
from azure.mgmt.recoveryservicesbackup.models import EnableProtectionRequest

# 配置基础参数
subscription_id = "你的订阅ID"
vault_name = "你的Recovery Services Vault名称"
resource_group_name = "Vault所在的资源组名称"

# 初始化备份客户端
credential = DefaultAzureCredential()
backup_client = RecoveryServicesBackupClient(
    credential=credential,
    subscription_id=subscription_id
)

# 1. 获取目标备份策略(对应PowerShell的Get-AzRecoveryServicesBackupProtectionPolicy)
policy_name = "monthlyafs"
policy = backup_client.protection_policies.get(
    vault_name=vault_name,
    resource_group_name=resource_group_name,
    policy_name=policy_name
)

# 2. 获取存储账户对应的备份容器(对应PowerShell的Get-AzRecoveryServicesBackupContainer)
storage_account_friendly_name = "testStorageAcct"
containers = backup_client.backup_containers.list(
    vault_name=vault_name,
    resource_group_name=resource_group_name,
    filter=f"containerType eq 'AzureStorage' and friendlyName eq '{storage_account_friendly_name}'"
)
afs_container = next(containers)  # 获取匹配的第一个容器

# 3. 获取文件共享的备份项(对应PowerShell的Get-AzRecoveryServicesBackupItem)
file_share_name = "testAzureFS"
backup_items = backup_client.backup_items.list(
    vault_name=vault_name,
    resource_group_name=resource_group_name,
    filter=f"containerName eq '{afs_container.name}' and workloadType eq 'AzureFiles' and name eq '{file_share_name}'"
)
afs_bkp_item = next(backup_items)  # 获取匹配的备份项

# 4. 启用备份保护(对应PowerShell的Enable-AzRecoveryServicesBackupProtection)
enable_request = EnableProtectionRequest(
    policy_id=policy.id
)

backup_client.protection_enablement.enable(
    vault_name=vault_name,
    resource_group_name=resource_group_name,
    fabric_name=afs_bkp_item.fabric_name,
    container_name=afs_bkp_item.container_name,
    protected_item_name=afs_bkp_item.name,
    parameters=enable_request
)

print("备份策略已成功分配给目标文件共享")

关键注意点

  • 调用list接口时必须通过filter参数精准匹配,避免返回大量无关结果
  • 启用保护时需使用备份项对象中的fabric_name、container_name等系统标识符,不能直接使用友好名称
  • 执行操作的账号需拥有Recovery Services Vault的Backup Operator或更高权限

内容的提问来源于stack exchange,提问作者Romojo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 09:04:56