Overview and Services Used:
This walk-through provides a .NET Core serverless web application with a React App on the frontend hosted using Lambda and Api Gateway through the Serverless Appliation Model(SAM). The application provides a basic web application using Cognito to access AWS resources such as DynamoDb to retrieve songs stored in Amazon DynamoDB and hit a third party lyric API for a musical quiz. It also has X-ray installed for application debugging. In addition it uses the SAM CloudFormation template for deploying the application components to AWS.
-
Note *Updates to this project will be continued to be made as it is still under code review. A word document to guide a user through the project will be added as well.
-
Authors *kneekey23 *tawalke
-
Working Code Example *https://www.youtube.com/watch?v=TZUtB1xXduo&t=7s&list=PLhr1KZpdzukc6QYNUvE1wwMZ-I1HAZYZ9&index=22
-
Links to documentation
- Amazon API Gateway Page: https://aws.amazon.com/apigateway/
- Amazon API Gateway Developer Guide: https://docs.aws.amazon.com/apigateway/latest/developerguide/welcome.html
- Amazon DynamoDB Page: https://aws.amazon.com/dynamodb/
- Amazon DynamoDB Developer Guide: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html
- AWS CloudFormation Page: https://aws.amazon.com/cloudformation/
- AWS CloudFormation Developer Guide: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html
- AWS Serverless Application Model Github Page: https://github.com/awslabs/serverless-application-model
- AWS Lambda Page: https://aws.amazon.com/lambda/
- AWS Lambda Developer Guide: https://docs.aws.amazon.com/lambda/latest/dg/welcome.html
- AWS Cognito Page: https://aws.amazon.com/cognito/
- AWS Cognito Developer Guide: https://docs.aws.amazon.com/cognito/latest/developerguide/what-is-amazon-cognito.html
- AWS X-Ray Page: https://aws.amazon.com/xray/
- AWS X-Ray .NET Blog: https://aws.amazon.com/blogs/developer/new-aws-x-ray-net-core-support/
-
Prerequisites
- AWS CLI
- .NET Core 2.x SDK or higher installed
- AWS Account with credentials configured locally in Visual Studio or using the CLI
- The AWS Lambda Tools, or AWS Toolkit for Visual Studio if using Visual Studio 2017
- node.js installed
- Optional: Visual Studio 2017 or Visual Studio Mac
-
External libraries:
- NuGet Package Amazon.Lambda.AspNetCoreServer
- NuGet Package AWSSDK.CognitoIdentity
- NuGet Pacakge AWSXRayRecorder.Core
- NuGet Package AWSXRayRecorder.Handlers.AspNetCore
- NuGet Package Microsoft.AspNetCore.SpaServices.Extensions
- NuGet Package Amazon.Lambda.Serialization.Json
- NuGet Package Amazon.Lambda.APIGatewayEvents
- NuGet Package AWSSDK.DynamoDBv2
- NuGet Package Microsoft.VisualStudio.Web.CodeGeneration.Design