in functions/source/lambda_function.py [0:0]
def get_ec2_instance_id(instance_tag):
region = os.environ['AWS_REGION']
ec2 = boto3.client('ec2', region_name=region)
filters = [{"Name":"tag:MerakiTag", "Values":[instance_tag]}]
instances = ec2.describe_instances(Filters=filters)
instance_id = []
logger.info('AWS EC2: Checking for vMX instances with instance tag {0}'.format(instance_tag))
for i in instances['Reservations']:
instance_id.append(i['Instances'][0]['InstanceId'])
if i['Instances'][0]['State']['Name'] == 'running':
logger.info('AWS EC2: Running vMX instance found with tag {0} and instance id {1}'.format(instance_tag, instance_id))
else:
logger.info('AWS EC2: Shutdown/Terminated vMX instance found with instance tag {0} and instance id {1}'.format(instance_tag, i['Instances'][0]['InstanceId']))
if len(instance_id) > 1:
logger.error('AWS EC2: More that one running instance with the same tag, please remove tag from stale/broken instance')
logger.error('AWS EC2: The following instances {0}, were found with the tag {1}'.format(instance_id, instance_tag))
exit
else:
return instance_id[0]