Building Serverless APIs: Integrating AWS Lambda with S3 and API Gateway.

ByteBusterX
4 min readJul 16, 2023

--

How API gateway works

Introduction:
AWS Lambda is a powerful serverless compute service that allows you to run code without provisioning or managing servers. Integrating Lambda with other AWS services, such as Amazon S3 and API Gateway, opens up endless possibilities for building scalable and flexible applications. In this blog, we will walk you through the process of integrating AWS Lambda with S3, setting up API Gateway to trigger the Lambda function, and retrieving Lambda function events through API Gateway.

**Table of Contents:**

1. What is AWS Lambda?
2. Integrating Lambda with Amazon S3
— Creating the Lambda Function
— Configuring S3 Trigger for Lambda
3. Integrating Lambda with API Gateway
— Creating an HTTP API
— Configuring Lambda Integration
— Deploying the API
4. Testing the Integration
— Using curl to Trigger Lambda via API Gateway
— Retrieving Lambda Function Event
5. Conclusion

1. What is AWS Lambda?
AWS Lambda is a serverless compute service that allows you to run code in response to events without managing servers. You can build applications using Lambda to execute code in response to various events, such as changes to data in an S3 bucket or HTTP requests via API Gateway.

2. Integrating Lambda with Amazon S3
To get started, we’ll create a Lambda function that logs S3 events and set up an S3 trigger for the Lambda function.

Bucket created for trigger in Lamda function

Creating the Lambda Function:

Creating Lamda function

Configuring S3 Trigger for Lambda:
- Go to the AWS Lambda console and create a new function.
- Choose “Author from scratch,” name your function, and use Python 3.10 as the runtime.
- In the “Function code” section, paste the Lambda function code.

import json
def lambda_handler(event, context):
print("Received S3 Event:")
print(json.dumps(event))
return {
"statusCode": 200,
"body": json.dumps("Hello from Lambda!")
}

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

code source of lamda function

- Click “Add trigger” and choose “S3” as the trigger type.
- Select your S3 bucket and event (e.g., “Object Created (All)”).
- Save the trigger configuration.

Trigger S3 Bucket to Lamda function
Triggered S3 bucket

3. Integrating Lambda with API Gateway
Next, we’ll set up an HTTP API in API Gateway to trigger our Lambda function.

Creating an HTTP API:
- Go to the AWS API Gateway console and create a new API.
- Choose “HTTP API” as the API type and give it a name.

Select API type

Configuring Lambda Integration:
- Create a new resource (e.g., “/trigger-lambda”) and a method (e.g., POST) under the API.
- Set up an integration with Lambda for the method.
- Choose the Lambda function created earlier as the integration target.

Creating API integrating with Lamda function

Deploying the API:
- Deploy the API to make it publicly accessible.
- Create a new deployment stage (e.g., “prod”).

Route set to Lamda Function
API Gateway Invoked url

4. Testing the Integration
Now that everything is set up, we can test the integration.

Using curl to Trigger Lambda via API Gateway:

curl -X POST https://example-api-gateway.execute-api.us-east-1.amazonaws.com/prod/trigger-lambda -d '{
"name": "unknown",
"age": "18",
"email":"none.gmail.com",
}'
Response

Retrieving Lambda Function Event:
- After running the curl command, check the CloudWatch logs for your Lambda function to see the logged event data.

log stream in Cloudwatch of Lamda function

5. Conclusion
Integrating AWS Lambda with S3 and API Gateway offers a powerful serverless architecture to build scalable and event-driven applications. By following the steps outlined in this blog, you can seamlessly connect these services to create dynamic and responsive applications with ease.

Start leveraging the potential of AWS Lambda and its integrations today to build efficient and cost-effective solutions for your business needs. Happy coding!

--

--

ByteBusterX
ByteBusterX

Written by ByteBusterX

"Tech enthusiast exploring cybersecurity and networking. Sharing insights through the power of words. Join me in the world of tech and discovery. 📚✍️

No responses yet