削除

2016-11-04 7 views
0
私は成功してい https://serverlesscode.com/post/lambda-schedule-ebs-snapshot-backups/ & & https://serverlesscode.com/post/lambda-schedule-ebs-snapshot-backups-2/ に応じ タグ[バックアップやバックアップ]を持つインスタンスのスナップショットを作成するには、以下のスクリプトを使用してみました

第1リンクと第2リンクでDeleteOnタグを含むスナップショットを作成しました。第2リンクの後半には、指定した日付にスナップショットを削除する方法が説明されています。そのコードに基づいて、私は7日後にスナップショットを削除するために以下を持っています。削除

これはコードです:

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']) 

これにより、私は次のエラーを取得する:

'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' 

答えて

0

私はこのように私上記のコードの一部を更新することによってそれを解決:

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