NAME: ROSHNI THADEVUS
COMPANY: CODETECH IT SOLUTIONS
ID: CT8CC1289
DOMAIN: CLOUD COMPUTING
DURATION: JUNE - AUGUST 2024
MENTOR:
BUILDING A SERVERLESS APPLICATION WITH AWS LAMBDA
Create a serverless application using AWS Lambda. This project will help you understand serverless computing and how to build applications without managing servers.
Key Activitie
-
Setup AWS S3 Bucket:
- Created an S3 bucket for storing uploaded files.
- Configured bucket policies to handle file access permissions.
-
Developed AWS Lambda Function:
- Created a Lambda function to process file uploads from a web application and store them in the S3 bucket.
-
Configured API Gateway:
- Set up API Gateway to serve as an interface between the web application and the Lambda function, enabling file uploads through HTTP requests.
-
Django Application Development:
- Built a Django web application with a file upload form, integrated with the API Gateway to facilitate file uploads.
-
Implemented Frontend:
- Designed a user-friendly HTML form for file uploads, styled with CSS for a better user experience.
-
Testing and Debugging:
- Tested the entire setup to ensure smooth file upload operations, debugged issues, and made necessary adjustments.
Technology Used
-
Amazon Web Services (AWS):
- AWS S3: Used for scalable storage of uploaded files.
- AWS Lambda: Serverless compute service used to process file uploads and interact with the S3 bucket.
- AWS API Gateway: Managed API service used to expose Lambda functions as RESTful APIs.
-
Django Framework:
- Python-based web framework used to build the web application for file uploads.
-
Python:
- Programming language used for both the Django application and the Lambda function.
-
HTML/CSS:
- Technologies used for creating and styling the file upload form on the web application.
-
boto3:
- AWS SDK for Python, used in the Lambda function to interact with S3.
Key Insights
-
Serverless Architecture Benefits:
- Utilizing AWS Lambda and API Gateway provided a cost-effective and scalable solution for handling file uploads without needing to manage server infrastructure.
-
Integration Challenges:
- Encountered and resolved issues related to binary data handling and CORS configuration, which were crucial for ensuring proper communication between the web application and AWS services.
-
Security Considerations:
- Configured bucket policies and access controls to ensure secure handling of uploaded files, avoiding unnecessary public access.
-
User Experience:
- Designed the file upload interface to be intuitive and easy to use, enhancing user interaction with the application.
-
Troubleshooting:
- Gained experience in debugging AWS Lambda functions and handling API Gateway configurations, leading to a deeper understanding of cloud-based application integration.
Designed to demonstrate the integration of cloud storage and serverless computing, this project provides practical experience in setting up an AWS S3 bucket, utilizing AWS Lambda for file processing, and connecting these services with a Django web application. It highlights skills in managing cloud infrastructure, handling file uploads, and creating secure, scalable web applications.