aws-cli describe-instances,按日期范围查找

aws-cli describe-instances,按日期范围查找

使用 aws-cli 客户端 (https://github.com/aws/aws-cli),有没有办法使用日期范围过滤器?或者使用“早于 X 日期”或“过去 X 天”过滤器?

似乎唯一与日期相关的过滤器是指定确切日期,或使用字符串通配符指定部分日期。例如,我发现按如下方式指定日期有效:

aws ec2 describe-instances --filters "Name=launch-time,Values=2015-03\*"

例如,这将获取 2015 年 3 月启动的所有实例。

我想要的是相当于这个 POSIX“find”命令,“查找过去 30 天的所有内容”:

find . -mtime -30

答案1

您不能,但可以使用 boto 库在 python 中执行此操作,例如,列出 30 多天前启动的 aws 区域“eu-west-1”中的实例。

import boto.ec2
import datetime
from dateutil import parser
conn = boto.ec2.connect_to_region('eu-west-1')
reservations = conn.get_all_instances()
for r in reservations:
    for i in r.instances:
        launchtime = parser.parse(i.launch_time)
        launchtime_naive = launchtime.replace(tzinfo=None)
        then = datetime.datetime.utcnow() + datetime.timedelta(days = -30)
        if launchtime_naive < then:
            print i.id

答案2

发现于使用过滤器“启动时间”来查找晚于 X 日期的所有实例?使用JMESPath 查询

aws ec2 describe-instances --query 'Reservations[].Instances[?LaunchTime>=`2015-03-01`][].{id: InstanceId, type: InstanceType, launched: LaunchTime}'

相关内容