Creating an AWS Lambda with Environment and events using python
- Create a blank function using python in aws lambda
- Lets build a simple calculator
{
"op": add/sub,
"val1": 5,
"val2": 2
}
- Now lets take the basic python code
import json
def lambda_handler(event, context):
# TODO implement
return {
'statusCode': 200,
'body': json.dumps('Hello from Lambda!')
}
- Now lets modify the code to suit our problem statement
import json
def lambda_handler(event, context):
op = event['op']
val1 = event['val1']
val2 = event['val2']
result = 0
if op == 'add':
result = val1 + val2
elif op == 'sub':
result = val1 - val2
elif op == 'mul':
result = val1 * val2
elif op == 'div':
result = val1 // val2
else:
result = "Invalid"
return {
'statusCode': 200,
'body': json.dumps(result)
}
- Now lets add the following logic to make use of environmental variables. I will be adding a ENVIRONMENTAL variable "DEBUG_LEVEL" which if it has value as verbose, we should print more logs
- Now lets make changes in the code
import json
import os
def lambda_handler(event, context):
debug_level = os.getenv('DEBUG_LEVEL')
op = event['op']
val1 = event['val1']
val2 = event['val2']
if debug_level == 'VERBOSE' :
print("{} is operator and values are {} {}".format(op,val1,val2))
result = 0
if op == 'add':
result = val1 + val2
elif op == 'sub':
result = val1 - val2
elif op == 'mul':
result = val1 * val2
elif op == 'div':
result = val1 // val2
else:
result = "Invalid"
return {
'statusCode': 200,
'body': json.dumps(result)
}
-
If you execute the function with environment varaible ‘DEBUG_LEVEL’ with value ‘VERBOSE’ you should see extra logs
-
Lambda can be exposed using API Gateways or Load balancers.