https://github.com/bogdanrat/aws-serverless-poc
AWS Serverless API POC
https://github.com/bogdanrat/aws-serverless-poc
amazon-web-services apigateway aws aws-apigateway aws-cloudformation aws-cloudwatch aws-cognito aws-dynamodb aws-lambda aws-sns cloudwatch cloudwatch-metrics cognito-user-pool dynamodb dynamodb-streams event-driven proof-of-concept serverless serverless-architectures serverless-functions
Last synced: 3 months ago
JSON representation
AWS Serverless API POC
- Host: GitHub
- URL: https://github.com/bogdanrat/aws-serverless-poc
- Owner: bogdanrat
- License: mit
- Created: 2021-09-21T11:22:04.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2022-01-18T10:43:24.000Z (about 4 years ago)
- Last Synced: 2024-06-21T21:11:49.428Z (almost 2 years ago)
- Topics: amazon-web-services, apigateway, aws, aws-apigateway, aws-cloudformation, aws-cloudwatch, aws-cognito, aws-dynamodb, aws-lambda, aws-sns, cloudwatch, cloudwatch-metrics, cognito-user-pool, dynamodb, dynamodb-streams, event-driven, proof-of-concept, serverless, serverless-architectures, serverless-functions
- Language: Go
- Homepage:
- Size: 128 KB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# AWS Serverless CRUD API POC
## Managed, built & deployed through AWS SAM
### Services
- **Amazon API Gateway**: proxies incoming request to the corresponding Lambda function, as an AWS_PROXY integration. Integrates with **Amazon Cognito** for Authorization. Features an API Usage Plan for API Quota & Throttling and API Key for Client access.
- **AWS Lambda**: each Lambda function handles a specific event: create, get, update, delete, search (by book author, title or category) and auth events (signup and login)
- **Amazon DynamoDB**: models a Book entity, with Author & Title as the primary key (hash key and sort key, respectively). Item-level changes are pushed to a **DynamoDB Streams**. An **Event Source Mapping** is established between the streams and a Lambda function that processes the stream and sends notifications to an **SNS Topic** when:
- a new book has been published
- a book went out of stock
- new formats (hardcover, paperback, audiobook etc.) are available for a book
- **Amazon SNS**: implements a Pub/Sub pattern for book status changes. The email subscription is automatically created through the SAM template by the stack creation responsible (configurable through parameters).
- **Amazon Cognito**: provides authentication and authorization mechanisms
- **Amazon CloudWatch**: monitoring custom metric data sent by the Lambda functions
