如何在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
相关产品推荐
相关产品推荐

