A simple to-do web app deployed to AWS Lambda via GitHub actions, the live version can be found here.
Note: The app currently uses runtime memory and is not persistent, connecting to a database is planned. Due to the nature of the lambda instance only being run on request, lists will be lost after a period of inactivity. There is also currently only a single to-do list exposed, shared by any users at that time.
The front end was adapted to use Vue.js 2 with Vuetify components.
The back end was built starting from a .Net Core web API tutorial found here.
The below files are only used when being run by GitHub actions.
LambdaEntryPoint.cs
: Wrapper class for ? that serves as the entry point for lambda function.aws-lambda-tools-defaults.json
: Default values for AWS .Net Core CLI to use.Dockerfile
: Inherits from AWS lambda base image and then copies build artifacts from host machine to the image.serverless.template
: CloudFormation template used by AWS .Net Core CLI commanddeploy serverless
found in the GitHub actions deployment script.
- Create an S3 bucket
- Create an IAM policy as specified
- Create an AWS user
- Give user the IAM policy
- Use credentials supplied to create GitHub secrets with ID's as specified in the
CI.yml
file.
From the 'front' directory run npm run dev
, configured in /front/package.json
. This creates a full development build and then stays running. Locally saved changes will output files to /back/wwwroot
as specified in /front/vue.config.js
which can then be served as usual from the .Net dev build.
This compound configuration is specified as "Server/Client" in launch.json.