https://github.com/lukasjhan/serverless-aws-middleware
Simple serverless middleware for AWS
https://github.com/lukasjhan/serverless-aws-middleware
aws-lambda lambda middleware serverless serverless-framework
Last synced: about 2 months ago
JSON representation
Simple serverless middleware for AWS
- Host: GitHub
- URL: https://github.com/lukasjhan/serverless-aws-middleware
- Owner: lukasjhan
- Created: 2023-04-13T12:16:56.000Z (almost 3 years ago)
- Default Branch: master
- Last Pushed: 2023-07-20T10:14:51.000Z (over 2 years ago)
- Last Synced: 2025-02-13T10:17:15.512Z (about 1 year ago)
- Topics: aws-lambda, lambda, middleware, serverless, serverless-framework
- Language: TypeScript
- Homepage:
- Size: 551 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Serverless aws middleware
This middleware provide the interface of lambda's handler to use `request => response`
and provide some AWS features like mysql, event queue, s3, logging, etc.
## Example usage
A wrapping function is provided from middleware
```ts
import {
AWSPluginAux,
LoggerPluginAux,
LogLevel,
middleware,
TracerPluginAux,
} from 'serverless-simple-middleware';
export type Aux = AWSPluginAux & TracerPluginAux & LoggerPluginAux;
export const handler = middleware.build([
middleware.aws({
config: undefined,
}),
middleware.trace({
route: 'es:index/event',
queueName: 'event_queue',
system: 'AppName',
awsConfig: undefined,
region: 'ap-northeast-2',
}),
middleware.logger({
name: __filename,
level: LogLevel.Stupid,
}),
]);
```
```ts
export const spam = handler(
async ({ request, aux }): Promise => {
const { logger, db } = aux;
const body: ReqestBody = request.body;
logger.info('requset log');
const response = await logic(db, body);
return response;
},
);
```
## Include features
- event queue (AWS SQS)
- S3
- logging
- dynamodb
- organize request object
- setting response object
- built-in http error handling module
- redis, typeorm, mongodb.
- tmp file management