This is the corresponding Project Repository to my bachelor thesis.
The setup Process consist of 3 main steps:
- Configure SNS Topics
- Creating Topics
- Linking Topics in
variables.ts
- Deploying
- Installing dependencies
yarn
- Deploying
yarn sls deploy
- Installing dependencies
- Configuring Infrastructure
yarn run setup
The project code base is mainly located within the src
folder. This folder is divided in:
functions
- containing code base and configuration for your lambda functionslibs
- containing shared code base between your lambdas
.
├── src
│ ├── functions # Lambda configuration and source code folder
│ │ ├── hello # Example directory
│ │ │ ├── handler.ts # `Hello` lambda source code
│ │ │ ├── index.ts # `Hello` lambda Serverless configuration
│ │ │ ├── mock.json # `Hello` lambda input parameter, if any, for local invocation
│ │ │ └── schema.ts # `Hello` lambda input event JSON-Schema
│ │ │
│ │ └── index.ts # Import/export of all lambda configurations
│ │
│ ├── libs # Lambda shared code
│ │ ├── apiGateway.ts # API Gateway specific helpers
│ │ ├── handlerResolver.ts # Sharable library for resolving lambda handlers
│ │ └── lambda.ts # Lambda middleware
│ │
│ ├── frontent # Svelte Kit Frontend Code
│ │
│ │
│ └── local # Scripts to run locally
│ ├── setup.ts # Setting up aws wrapper logic
│ ├── upload.ts # script to upload lambda
│ └── consurrentcy_test.ts # Concurrency Performance Test
├── package.json
├── serverless.ts # Serverless service file
├── tsconfig.json # Typescript compiler configuration
├── tsconfig.paths.json # Typescript paths
└── webpack.config.js # Webpack configuration
- json-schema-to-ts - uses JSON-Schema definitions used by API Gateway for HTTP request validation to statically generate TypeScript types in your lambda's handler code base
- middy - middleware engine for Node.Js lambda. This template uses http-json-body-parser to convert API Gateway
event.body
property, originally passed as a stringified JSON, to its corresponding parsed object - @serverless/typescript - provides up-to-date TypeScript definitions for your
serverless.ts
service file
Any tsconfig.json can be used, but if you do, set the environment variable TS_NODE_CONFIG
for building the application, eg TS_NODE_CONFIG=./tsconfig.app.json npx serverless webpack