Welcome to the SPEAKER project! This repository contains the code and configurations for deploying a highly available, scalable, and secure infrastructure using Terraform. Below, you'll find an overview of the project, the technologies used, and how to get started.
The SPEAKER project aims to create a robust infrastructure setup using Terraform. The primary focus is on ensuring scalability, high availability, and security. The project is organized into various modules to enhance modularity and reusability of the code.
- API Gateway Module: Configures AWS API Gateway.
- Lambda Handler Module: Configures the Lambda responsible for connecting with AWS Polly.
The project utilizes AWS Polly to generate speech from the provided text, showcasing the text-to-speech capabilities within the Lambda Handler module.
- Terraform: Infrastructure as Code (IaC) tool used to define and provision the infrastructure.
- Python: For any auxiliary scripts that support the infrastructure setup.
- HCL (HashiCorp Configuration Language): The language used by Terraform to describe the infrastructure resources.
To get a local copy up and running, follow these steps:
- Terraform: Install Terraform
- Python: Install Python
- Clone the repository:
git clone https://github.com/PwGawzynski/SPEAKER.git cd SPEAKER
- Initialize Terraform:
terraform init
- Apply the Terraform configuration:
terraform apply
You can use the default configuration or override variables by creating a Terraform.tfvars
file.
One of the unique aspects of this project is the demonstration of directly sending multipart/form-data
to AWS Lambda. This is not a common practice due to the complexity involved, especially when the aws_api_gateway_integration
type is set to AWS
instead of AWS_PROXY
. However, this project showcases that it is indeed possible.
While using S3 would be a more straightforward and optimal solution for handling file uploads, this project aims to illustrate that direct multipart uploads to Lambda are feasible. This demonstrates flexibility and pushes the boundaries of typical AWS usage.
All rights reserved ยฎPwGawลผyลski