obsidian/MyObsidianVault/AWA/01_AWS Access/_Lambda Code Snippets/04 Get AWA Uptime.md

1.1 KiB

#Get Uptime
import boto3
import time
import datetime
region = 'eu-central-1'
instances = ['i-0de7cce6fcdf8c0e6']
ec2 = boto3.resource('ec2')
print("Executing script")    
    
def lambda_handler(event, context):
    for instance in ec2.instances.all():
        if instance.id =="i-0de7cce6fcdf8c0e6":
            state = instance.state["Name"]
            if state != "running":
                return { 
                    'state' : state,
                    'uptime': '-'
                }
            else:
                launch_time = (instance.launch_time).strftime("%Y-%m-%d %H:%M:%S")
                launch_time = datetime.datetime.strptime(launch_time, "%Y-%m-%d %H:%M:%S")
                current_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
                current_time = datetime.datetime.strptime(current_time, "%Y-%m-%d %H:%M:%S")
                uptime = (current_time - launch_time)
                threshold = datetime.timedelta(minutes = 2)
                return { 
                    'state' : state,
                    'uptime': str(uptime)
                }