Ricordanza
12/15/2016 - 12:22 AM

ec2_stop.py

# encoding:utf-8

import json
import boto3

def main():
    query_stop = [
        {'Name': 'tag:auto', "Values": ['on', 'auto']},
        {'Name': 'instance-state-name', "Values": ['running']}
    ]

    boto3.client('ec2').stop_instances(InstanceIds=get_instanceid(query_stop))

    return "SUCCESS"

def get_instanceid(query):
    response = boto3.client('ec2').describe_instances(Filters=query)

    ec2_count = len(response['Reservations'])
    ec2_list = []

    if not ec2_count == 0:
        for i in range(0, ec2_count):
            ec2_list.append(response['Reservations'][i]['Instances'][0]['InstanceId'])
            print "target id {0}".format(ec2_list[-1])
        return ec2_list
    else:
        print("SUCCESS: specified hosts is None")

def lambda_handler(event, context):
    main()

if __name__ == '__main__':
    main()