Назад | Перейти на главную страницу

aws-cli description-instance, поиск по диапазону дат

Используя клиент aws-cli (https://github.com/aws/aws-cli), есть ли способ найти экземпляры с помощью диапазон дат фильтр? Или с помощью фильтра «ранее X даты» или «последних X дней»?

Кажется, что единственный фильтр, связанный с датой, - это указать точную дату или частичную дату с подстановочными знаками строки. Например, я обнаружил, что указание даты работает следующим образом:

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

Например, все экземпляры будут запущены в марте 2015 года.

То, что я хочу, эквивалентно этой команде POSIX "find", "найти все за последние 30 дней":

find . -mtime -30

Найти на Использовать фильтр «время запуска», чтобы найти все экземпляры новее, чем дата X? с помощью JMESPath запрос:

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

Вы не можете, но чтобы сделать это на Python с использованием библиотеки boto, сделайте так, например, чтобы вывести список экземпляров в регионе aws "eu-west-1", запущенных более 30 дней назад.

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