aws-cli 描述实例,按日期范围查找

JDS*_*JDS 6 aws-cli

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

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

aws ec2 describe-instances --filters "Name=launch-time,Values=2015-03\*"
Run Code Online (Sandbox Code Playgroud)

例如,这会在 2015 年 3 月启动所有实例。

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

find . -mtime -30
Run Code Online (Sandbox Code Playgroud)

Joh*_*ein 15

对发现使用过滤器“启动时间”找到比X日期更新所有实例?使用JMESPath 查询

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


Sir*_*rch 3

你不能,但要使用 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
Run Code Online (Sandbox Code Playgroud)