python脚本列出基于选择日期创建的EBS快照

时间:2018-07-09 08:31:07

标签: python amazon-web-services boto3 snapshot

我搜索了StackOverflow,发现大多数示例都在使用Boto,几乎已弃用。我试图列出使用Boto 3在过去24小时(例如昨天)创建的EBS快照。

import boto3
import json
import dateutil
from datetime import date, timedelta
import collections

def lambda_handler(event, context):

    source_region = 'ap-southeast-1'
    snapshot_client = boto3.client('ec2', source_region)    

    semalam = (date.today() - timedelta(1), '%Y-%m-%d')
    ebsAllSnapshots = snapshot_client.describe_snapshots(OwnerIds=['self'])

    for snaplist in ebsAllSnapshots['Snapshots']:
        strdate = snaplist['StartTime'].date()
        if (strdate <= semalam):
            print snaplist['SnapshotId']

我得到的错误是TypeError: can't compare datetime.date to tuple

变量strdate确实返回了快照创建日期的列表,例如:

2018-06-10
2018-06-10
2018-06-10

1 个答案:

答案 0 :(得分:0)

由于semalam是一个由日期值和在线组成的元组,因此您遇到此错误

if (strdate <= semalam):

您正在尝试将其与日期时间对象进行比较。 尝试遍历元组值,例如

strdate = snaplist['StartTime'].date()
for i in semalam:
   if(strdate<=i):
     proceed as usual

确保从datetime模块调用正确的方法