需要将AZURE备份策略分配给文件共享的Python流程
在我的Python程序中,我正在根据一些参数创建存储账户和文件共享,并且需要将一个已有的备份策略分配给这个新的文件共享。
我在AZURE网站上找到了在Powershell中执行这个操作的方法(我认为是下面这个)。
$monthlyafsPol = Get-AzRecoveryServicesBackupProtectionPolicy -Name "monthlyafs"
$afsContainer = Get-AzRecoveryServicesBackupContainer -FriendlyName "testStorageAcct" -ContainerType AzureStorage
$afsBkpItem = Get-AzRecoveryServicesBackupItem -Container $afsContainer -WorkloadType AzureFiles -Name "testAzureFS"
Enable-AzRecoveryServicesBackupProtection -Item $afsBkpItem -Policy $monthlyafsPol
但是我还没有找到Python中对应的做法。我怀疑这个功能可能和RecoveryServicesBackupClient
有关,但到目前为止还没有成功。
2 个回答
谢谢!我现在已经快搞定了,但在处理sourceResourceId这个参数时遇到了一些问题。错误信息是……SourceResourceId必须是源存储账户的完整ARM ID
我的值是这样拼接起来的: # - 订阅 S1 = "/subscriptions/" + sub_id # - 资源组 S2 = "/resourceGroups/" + AZURE_RG # - 提供者 S3 = "/providers/Microsoft.Storage" # - 存储账户 S4 = "/storageAccounts/" + STGACCTAPPX # - 文件服务部分 S5 = "/fileServices/default/shares/" + ShareName # SrcResID = S1 + S2 + S3 + S4 + S5
我还在使用一个没有容器的存储账户,所以把参数设置为 container_name="StorageContainer;storage;" + ResGroup +";$root"
这样听起来可以吗?
需要一个Python过程来给文件共享分配一个AZURE备份策略
你可以使用下面的Python代码来给文件共享分配一个Azure BackupPolicy
。
代码:
from azure.identity import DefaultAzureCredential
from azure.mgmt.recoveryservicesbackup import RecoveryServicesBackupClient
def main():
client = RecoveryServicesBackupClient(
credential=DefaultAzureCredential(),
subscription_id="xxxxx",
)
response = client.protected_items.create_or_update(
vault_name="azurefilesvault",
resource_group_name="xxxxx",
fabric_name="Azure",
container_name="StorageContainer;storage;xxxxxx;venkat789",
protected_item_name="AzureFileShare;xxxxxx",
parameters={
"properties": {
"policyId": "/subscriptions/xxxx/resourceGroups/xxxx/providers/Microsoft.RecoveryServices/vaults/azurefilesvault/backupPolicies/policy2",
"protectedItemType": "AzureFileShareProtectedItem",
"sourceResourceId": "/subscriptions/xxxxf/resourceGroups/xxx/providers/Microsoft.Storage/storageAccounts/venkat789/fileServices/default/shares/share1",
}
},
)
print(response)
if __name__ == "__main__":
main()
上面的代码会在Azure恢复服务库中创建或更新一个受保护的项目,这个过程是通过Azure SDK for Python
来实现的。它使用了RecoveryServicesBackupClient
这个类和create_or_update()
这个方法,并传入一些必要的参数,比如库的名称、资源组的名称、架构名称、容器名称、受保护项目的名称,以及一个包含受保护项目参数的字典。代码执行后,create_or_update()
方法的返回结果会打印到控制台上。
输出:
参考: 受保护的项目 - 创建或更新 - REST API (Azure恢复服务 - 备份) | Microsoft Learn