使用Azure Python SDK查询Azure VM备份策略及启停调度
使用Azure Python SDK查询VM备份策略与启停调度信息
没问题,我来一步步帮你搞定这几个Azure管理的常见需求,用Python SDK完全能实现,同时也给你说下Portal里的查看方法。
一、查询已绑定VM的备份策略详情
首先你得安装几个必要的SDK包,打开终端跑这个命令:
pip install azure-mgmt-recoveryservices azure-mgmt-recoveryservicesbackup azure-identity
接下来是具体的代码实现,你只需要替换自己的订阅ID、资源组、VM名称这些参数就行:
from azure.identity import DefaultAzureCredential from azure.mgmt.recoveryservicesbackup import RecoveryServicesBackupClient from azure.mgmt.recoveryservices import RecoveryServicesClient # 替换成你的实际参数 subscription_id = "你的订阅ID" resource_group_name = "VM所在的资源组名称" vault_name = "备份Vault的名称" vm_name = "目标VM的名称" # 初始化身份验证和客户端(用DefaultAzureCredential最方便,支持本地开发、Azure CLI等多种认证方式) credential = DefaultAzureCredential() backup_client = RecoveryServicesBackupClient(credential, subscription_id) recovery_services_client = RecoveryServicesClient(credential, subscription_id) # 获取备份Vault的ID,后续查询需要用到 vault = recovery_services_client.vaults.get(resource_group_name, vault_name) vault_id = vault.id # 查询目标VM对应的备份保护项 protected_items = backup_client.protected_items.list( vault_name=vault_name, resource_group_name=resource_group_name, filter=f"backupManagementType eq 'AzureIaasVM' and itemName eq '{vm_name}'" ) # 提取保护项并获取对应的备份策略详情 for item in protected_items: if item.properties.protection_state == "Protected": policy_id = item.properties.policy_id # 从policy ID里提取策略名称,或者直接用ID调用get方法也行 policy_name = policy_id.split("/")[-1] policy = backup_client.protection_policies.get( vault_name=vault_name, resource_group_name=resource_group_name, policy_name=policy_name ) # 打印关键信息,你可以根据需求提取更多字段 print("=== 备份策略详情 ===") print(f"策略名称: {policy.name}") print(f"备份频率: {policy.properties.schedule_policy.schedule_run_frequency}") print(f"保留周期: {policy.properties.retention_policy.retention_duration.days}天") print(f"增量备份间隔: {policy.properties.schedule_policy.schedule_run_interval}小时")
如果不知道备份Vault的名称,你可以先调用recovery_services_client.vaults.list_by_subscription()列出订阅下所有的Vault,再筛选关联目标VM的那个。
二、获取VM的启停调度信息
VM的启停调度通常有两种主流实现方式,对应的SDK查询方法不一样,我都给你列出来:
方式1:通过Azure Automation Runbook实现的启停
这种方式需要先安装azure-mgmt-automation包:
pip install azure-mgmt-automation
代码示例,替换你的Automation账户相关参数:
from azure.identity import DefaultAzureCredential from azure.mgmt.automation import AutomationClient subscription_id = "你的订阅ID" resource_group_name = "Automation账户所在的资源组" automation_account_name = "你的Automation账户名称" credential = DefaultAzureCredential() automation_client = AutomationClient(credential, subscription_id) # 获取所有和VM启停相关的Runbook(假设Runbook名称包含Start/Stop关键词) runbooks = automation_client.runbook.list_by_automation_account(resource_group_name, automation_account_name) for runbook in runbooks: if "Start" in runbook.name or "Stop" in runbook.name: # 查询该Runbook关联的调度计划 job_schedules = automation_client.job_schedule.list_by_automation_account(resource_group_name, automation_account_name) for job_sched in job_schedules: if job_sched.properties.runbook.name == runbook.name: schedule = automation_client.schedule.get( resource_group_name, automation_account_name, job_sched.properties.schedule.name ) print(f"\n=== 启停调度详情 ===") print(f"Runbook名称: {runbook.name}") print(f"调度名称: {schedule.name}") print(f"调度频率: {schedule.properties.frequency}") print(f"下次运行时间: {schedule.properties.next_run}")
方式2:通过Start/Stop VM v2官方解决方案实现的启停
这是Azure官方推荐的VM启停方案,对应的资源属于Monitor服务,需要安装azure-mgmt-monitor包:
pip install azure-mgmt-monitor
代码示例:
from azure.identity import DefaultAzureCredential from azure.mgmt.monitor import MonitorManagementClient subscription_id = "你的订阅ID" resource_group_name = "Start/Stop VM v2解决方案所在的资源组" credential = DefaultAzureCredential() monitor_client = MonitorManagementClient(credential, subscription_id) # 查询所有和VM启停相关的调度规则(规则名称通常包含StartStop关键词) rules = monitor_client.scheduled_query_rules.list_by_resource_group(resource_group_name) for rule in rules: if "StartStop" in rule.name: print(f"\n=== Start/Stop VM v2调度详情 ===") print(f"规则名称: {rule.name}") print(f"目标VM资源类型: {rule.properties.target_resource_types}") print(f"调度频率: {rule.properties.schedule.frequency}") print(f"触发间隔: {rule.properties.schedule.interval}分钟")
三、Azure Portal中查看VM备份策略详情的步骤
这个操作很简单,跟着步骤走就行:
- 登录Azure Portal,找到目标VM的详情页面
- 在左侧操作栏里,找到备份选项(在“运维管理”分组下面)
- 进入备份页面后,顶部就能看到当前VM绑定的备份策略名称,点击这个名称就能查看完整的策略详情,包括备份计划、保留周期、增量备份设置等
内容的提问来源于stack exchange,提问作者Himanshu Mundeepi
相关产品推荐
相关产品推荐

