Lambda demo functions for Server Stop/Start/Status
This commit is contained in:
parent
3436132866
commit
8f62d9bf83
5 changed files with 106 additions and 1 deletions
3
MyObsidianVault/.obsidian/app.json
vendored
3
MyObsidianVault/.obsidian/app.json
vendored
|
|
@ -6,5 +6,6 @@
|
||||||
"landscape": false,
|
"landscape": false,
|
||||||
"margin": "0",
|
"margin": "0",
|
||||||
"downscalePercent": 100
|
"downscalePercent": 100
|
||||||
}
|
},
|
||||||
|
"readableLineLength": false
|
||||||
}
|
}
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
```python
|
||||||
|
#StopServer
|
||||||
|
import boto3
|
||||||
|
region = 'eu-central-1'
|
||||||
|
#instances = ['i-0de7cce6fcdf8c0e6']
|
||||||
|
ec2 = boto3.client('ec2', region_name=region)
|
||||||
|
|
||||||
|
def lambda_handler(event, context):
|
||||||
|
ec2.stop_instances(InstanceIds=["i-0de7cce6fcdf8c0e6"])
|
||||||
|
return {
|
||||||
|
'message' : 'stopped'
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
`
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
```python
|
||||||
|
#StartServer
|
||||||
|
import boto3
|
||||||
|
region = 'eu-central-1'
|
||||||
|
#instances = ['i-0de7cce6fcdf8c0e6']
|
||||||
|
ec2 = boto3.client('ec2', region_name=region)
|
||||||
|
|
||||||
|
def lambda_handler(event, context):
|
||||||
|
ec2.start_instances(InstanceIds=["i-0de7cce6fcdf8c0e6"])
|
||||||
|
return {
|
||||||
|
'message' : 'server started'
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
@ -0,0 +1,45 @@
|
||||||
|
```python
|
||||||
|
import boto3
|
||||||
|
import time
|
||||||
|
import datetime
|
||||||
|
|
||||||
|
#ec2 = boto3.resource('ec2')
|
||||||
|
ec2 = boto3.client('ec2')
|
||||||
|
|
||||||
|
awa_server_instance_id = "i-0de7cce6fcdf8c0e6"
|
||||||
|
|
||||||
|
def lambda_handler(event, context):
|
||||||
|
#return "1.2.3.4"
|
||||||
|
|
||||||
|
#filters = [
|
||||||
|
# {
|
||||||
|
# 'Name': 'instance-state-name',
|
||||||
|
# 'Values': ['running']
|
||||||
|
# }
|
||||||
|
#]
|
||||||
|
#
|
||||||
|
#instances = ec2.instances.filter(Filters=filters)
|
||||||
|
#
|
||||||
|
#for instance in instances:
|
||||||
|
# print(instance)
|
||||||
|
|
||||||
|
|
||||||
|
response = ec2.describe_instances()
|
||||||
|
|
||||||
|
for reservation in response['Reservations']:
|
||||||
|
for instance in reservation['Instances']:
|
||||||
|
instance_id = instance.get('InstanceId', 'NONE')
|
||||||
|
ip = instance.get('PublicIpAddress', 'DOWN')
|
||||||
|
|
||||||
|
if instance_id == awa_server_instance_id:
|
||||||
|
#return {
|
||||||
|
# 'statusCode': 200,
|
||||||
|
# 'ip': ip
|
||||||
|
#}
|
||||||
|
return ip+'\n'
|
||||||
|
#return {
|
||||||
|
# 'statusCode': 200,
|
||||||
|
# 'ip': "DOWN"
|
||||||
|
#}
|
||||||
|
return "DOWN\n"
|
||||||
|
```
|
||||||
|
|
@ -0,0 +1,31 @@
|
||||||
|
```python
|
||||||
|
#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)
|
||||||
|
}
|
||||||
|
```
|
||||||
Loading…
Add table
Add a link
Reference in a new issue