- CDK for resource management
- Access dev DB from local
- Remove DB creation
- Add cognito auth
- Add api authorizer
- Watch changes when serve
- Support aws layer?
- nx logs lambda ->
nx logs ping --function=post
- nx deploy function only ->
nx upload ping --function=post
- Update
http-handler
generator templates - Update
model
generator templates - Update
service
generator templates - serverless config only 1 version lambda
- Simple ping-get
- Simple ping-post
- Simple ping-list
- Simple Ping model
- Add vite frontend portal
- Add nextjs frontend
- Document for file layout
- Add HttpAPI service
Resources such as S3, DynamoDB, Cognito are managed separately using CDK in resource folder.
Commands
cdk diff --profile nx-test
cdk deploy --profile nx-test
# Deploy function only
nx upload <SERVICE_NAME> --function=<FUNCTION_NAME>
nx upload ping --function=post
# Logs a function
nx logs <SERVICE_NAME> --function=<FUNCTION_NAME>
nx logs ping --function=get
# Deploy all affected service
nx affected --target=deploy --all
# Build all affected service
nx affected --target=build --all
Default AWS profile and region is configurable in environment.ts;
Append NODE_ENV=<ENV>
in front of the command
Example NODE_ENV=prod nx logs ping --function=post
Environments are configurable in environments folder
A new service is equivalent to a new CloudFormation Stack. Service should only create new lambdas. Resources such as DynamoDB, Cognito User Pool, Secrets Manager are created and managed separately
# Generate new service
yarn g:service <SERVICE_NAME>
yarn g:service ping
# Generate new http controller
yarn g:http-handler
# Generate new lambda controller
# TODO update doc
# Generate library
nx g lib <LIBRARY_NAME>
- Delete the folder
- Delete declaration in
workspace.json
Layout for multiple independent services:
./
├─ libs/
├─ service-A/
| ├─ serverless.base.yml
| ├─ serverless.provider.yml
├─ service-B/