2016-11-04 5 views
0

ich mit dem folgende Skript versucht, Snapshots für Instanzen zu erstellen, den Tag Namen [Backup oder Backup] nach https://serverlesscode.com/post/lambda-schedule-ebs-snapshot-backups/ & & https://serverlesscode.com/post/lambda-schedule-ebs-snapshot-backups-2/ Ich habe erfolgreich mit erstellt die Snapshots mit DeleteOn-Tags wie im ersten und zweiten Link angegeben. Der letzte Teil des zweiten Links erläutert, wie diese Snapshots am angegebenen Datum gelöscht werden. Basierend auf diesem Code habe ich folgendes um die Snapshots nach 7 Tagen zu löschen.Löschen von Snapshots nach 7 Tagen AWS Lambda mit

Dies ist der Code:

import boto3 
import re 
import datetime 

ec = boto3.client('ec2') 
iam = boto3.client('iam') 

def lambda_handler(event, context): 
    account_ids = list('123456789011') 
    try:  
     iam.get_user() 
    except Exception as e: 
     account_ids.append(re.search(r'(arn:aws:sts::)([0-9]+)', str(e)).groups()[1]) 


    delete_on = datetime.date.today().strftime('%Y-%m-%d') 
     filters = [ 
     {'Name': 'tag-key', 'Values': ['DeleteOn']}, 
     {'Name': 'tag-value', 'Values': [delete_on]}, 
    ] 
    snapshot_response = ec.describe_snapshots(OwnerIds=account_ids, Filters=filters) 


    for snap in snapshot_response['Snapshots']: 
     print "Deleting snapshot %s" % snap['SnapshotId'] 
     ec.delete_snapshot(SnapshotId=snap['SnapshotId']) 

Auf diese Weise erhalte ich folgende Fehlermeldung:

'NoneType' object has no attribute 'groups': AttributeError 
Traceback (most recent call last): 
    File "/var/task/lambda_function.py", line 27, in lambda_handler 
    account_ids.append(re.search(r'(arn:aws:sts::)([0-9]+)', str(e)).groups()[1]) 
    AttributeError: 'NoneType' object has no attribute 'groups' 

Antwort

0

ich es gelöst, indem ein Teil meines obigen Code Aktualisierung auf diese Weise:

def lambda_handler(event, context): 
account_ids = ['123456789011']