AWS : Lambda + API gateway

9 Simple steps - Integrate Lambda and API gateway

1. Create a Lambda Function

2. Deploy Python code for Lambda function

3. Sample Python Code for API gateway

#####################################################
# Code : To Integrate Lambda and APi gateway response
# Developer : Debaditya Chakravorty
# Credits : Thanks to all AWS and other blogs
#####################################################
import json

print('This is Capt Picard from the Enterprise !!')

def lambda_handler(event, context):
	#1. Parse out query string params
	starTrekId = event['queryStringParameters']['starTrekId']
	starTrekName = event['queryStringParameters']['starTrekName']
	starTrekDept = event['queryStringParameters']['starTrekDept']
	starTrekSalary = event['queryStringParameters']['starTrekSalary']

	print('starTrekId =' + starTrekId)
	print('starTrekName =' + starTrekName)
	print('starTrekDept =' + starTrekDept)
	print('starTrekSalary =' + starTrekSalary)

	#2. Construct the body of the response object
	startrekResponse = {}
	startrekResponse['starTrekId'] = starTrekId
	startrekResponse['name'] = starTrekName
	startrekResponse['dept'] = starTrekDept
	startrekResponse['salary'] = starTrekSalary
	startrekResponse['message'] = 'Hello - This is Captain Picard from Enterprise !!'

	#3. Construct http response object
	responseObject = {}
	responseObject['statusCode'] = 200
	responseObject['headers'] = {}
	responseObject['headers']['Content-Type'] = 'application/json'
	responseObject['body'] = json.dumps(startrekResponse)

	#4. Return the response object
	return responseObject

4. Create API Gateway

5. Create a child resource

6. Create method (in this case - GET method)

7. Integrate the lambda function with GET method

8. Deploy the API

9. Get the REST endpoint

10. Use the endpoint and payload for result

Sample Payload : starTrekId=1&starTrekName=Worf&starTrekDept=Security&starTrekSalary=200000

Note :

  • The steps mentioned above is for POC.

  • In Production or any organization , CloudFormation template and proper IAM roles would be utilized (Concept of least privilege)