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

使用Python boto3筛选创建时间超过24小时的AWS EC2实例

实现方案

EC2 API的launch-time过滤器仅支持前缀匹配,不支持直接筛选早于指定时间的实例,你可以在拉取测试环境实例列表后,在本地做时间比对筛选,完整实现代码如下:

from datetime import datetime, timedelta, timezone

session = get_aws_session()
ec2 = session.resource("ec2", region_name=REGION)
ssm = session.client("ssm")

# 计算24小时前的UTC时间(EC2返回的启动时间默认是UTC时区)
cutoff_time = datetime.now(timezone.utc) - timedelta(hours=24)

# 先拉取所有测试环境的实例
test_instances = ec2.instances.filter(
    Filters=[
        {"Name": "tag:Environment", "Values": ["test"]},
        # 可选:仅筛选运行中的实例,避免匹配已停止的资源
        {"Name": "instance-state-name", "Values": ["running"]}
    ]
)

# 过滤出启动时间超过24小时的闲置实例
idle_instances = [instance for instance in test_instances if instance.launch_time < cutoff_time]

补充说明

  • 以上代码使用Python 3.9+内置的timezone模块处理时区,不需要安装第三方依赖;如果是更低版本的Python,可以安装pytz替换时区逻辑:
    import pytz
    cutoff_time = datetime.now(tz=pytz.UTC) - timedelta(hours=24)
    
  • 可以按需调整闲置判定阈值,比如修改timedelta(days=3)即可筛选启动超过3天的实例

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 11:39:05