【发布时间】:2019-05-30 07:39:02
【问题描述】:
我正在尝试删除旧的 AWS 快照,但我需要排除任何以“由 CreateImage 创建”开头的描述值。
我尝试了 boto3.resource 和 boto3.client 的变体。
from datetime import datetime, timedelta, timezone
import boto3
client = boto3.client('ec2')
snapshots = client.snapshots.filter(Description!='Created by CreateImage')
def lambda_handler(event, context):
for snapshot in snapshots:
start_time = snapshot.start_time
delete_time = datetime.now(tz=timezone.utc) - timedelta(days=790)
if delete_time > start_time:
snapshot.delete()
print('Snapshot with Id = {} is deleted '.format(snapshot.snapshot_id))
现在我有大约 10 个超过 790 天的快照,其中 5 个的描述以“由 CreateImage 创建”开头,5 个没有。在对此进行测试时,我想删除那些没有描述的快照。
我得到的错误是:
模块初始化错误:“EC2”对象没有属性“快照”
【问题讨论】:
-
使用 EC2 客户端 describe_snapshots() 方法。并对结果进行自己的过滤 - 您不能使用 boto3 过滤“值!= X”。
标签: python-3.x amazon-web-services aws-lambda boto3