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

如何使用Azure Python SDK获取Azure资源创建时间并筛选30天以上资源?

如何通过Azure Python SDK获取创建时间超过30天的资源列表

当然可以!Azure Python SDK完全能够帮你获取资源的创建时间戳,进而筛选出超过30天的资源。下面是具体的实现步骤和代码示例:

1. 安装必要的Python包

你需要安装两个核心包:用于身份验证的azure-identity,以及用于资源管理的azure-mgmt-resource。如果要针对特定资源(比如VM)做更细致的操作,还可以安装对应资源的管理包(比如azure-mgmt-compute),不过通用的资源查询用前两个包就足够了。

执行安装命令:

pip install azure-identity azure-mgmt-resource

2. 编写核心代码

下面的脚本会完成:

  • 通过Azure CLI的身份验证(你需要先在本地执行az login完成登录)
  • 遍历订阅下的所有资源
  • 提取每个资源的创建时间
  • 筛选出创建时间超过30天的资源
from azure.identity import AzureCliCredential
from azure.mgmt.resource import ResourceManagementClient
from datetime import datetime, timedelta
import pytz

# 替换成你的订阅ID
SUBSCRIPTION_ID = "your-subscription-id"

def get_old_resources():
    # 初始化身份验证与资源管理客户端
    credential = AzureCliCredential()
    resource_client = ResourceManagementClient(credential, SUBSCRIPTION_ID)

    # 计算30天前的UTC时间点(Azure资源时间均为UTC时区)
    thirty_days_ago = datetime.now(pytz.utc) - timedelta(days=30)

    old_resources = []
    # 遍历所有资源,可添加filter指定特定资源类型
    for resource in resource_client.resources.list():
        # 获取资源创建时间戳
        created_time = resource.system_data.created_at
        if created_time < thirty_days_ago:
            old_resources.append({
                "name": resource.name,
                "type": resource.type,
                "created_at": created_time.strftime("%Y-%m-%d %H:%M:%S UTC"),
                "resource_group": resource.resource_group
            })
    
    return old_resources

if __name__ == "__main__":
    resources = get_old_resources()
    print(f"找到 {len(resources)} 个创建时间超过30天的资源:")
    for res in resources:
        print(f"资源名称: {res['name']}, 类型: {res['type']}, 创建时间: {res['created_at']}, 资源组: {res['resource_group']}")

3. 针对特定资源类型的筛选

如果你只想查询VM这类特定资源,可以在list()方法中添加filter参数,比如只筛选虚拟机:

# 仅查询虚拟机资源
for resource in resource_client.resources.list(filter="resourceType eq 'Microsoft.Compute/virtualMachines'"):
    # 后续筛选逻辑保持不变

关键说明

  • 时间时区:Azure返回的创建时间是UTC时区,所以在比较时要确保你的时间计算也基于UTC,避免时区偏差导致筛选错误。
  • 权限要求:执行脚本的账号需要有订阅级别的Reader权限,才能读取资源的属性信息。
  • 通用性:不管是VM、存储账户还是App Service,所有Azure资源的system_data.created_at字段都记录了创建时间,这个方法适用于所有资源类型。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 07:30:20