To deploy without dependencies and CloudFormation limitation of Template body size(512k), create small API stacks for each Microservice or module.
Table of Contents
- Deploy root-api stack
- Deploy device-api stack
- Deploy product-api stack
npm install -g [email protected]
# install packages in the root folder
npm install
cdk bootstrapUse the cdk command-line toolkit to interact with your project:
cdk deploy: deploys your app into an AWS accountcdk synth: synthesizes an AWS CloudFormation template for your appcdk diff: compares your app with the deployed stackcdk watch: deployment every time a file change is detected
| Stack | Time |
|---|---|
| root-api (24kb) | 1m 30s |
| device-api (24kb) | 1m 30s |
| product-api (20kb) | 1m 30s |
| Total | 4m 30s |
Use the deploy-all.sh file if you want to deploy all stacks without prompt at a time.
Create the root API and dummy method to import from device-api and product-api stacks.
cd root-api
cdk deployroot-api/lib/root-api-stack.ts
cd ../device-api
cdk deploydevice-api/lib/device-api-stack.ts
SSM parameter:
- /cdk-lambda-apigateway/rest-api-id
- /cdk-lambda-apigateway/root-resource-id
cd ../product-api
cdk deployproduct-api/lib/product-api-stack.ts
SSM parameter:
- /cdk-lambda-apigateway/rest-api-id
- /cdk-lambda-apigateway/root-resource-id
├── app
│ └── hello.js
├── build.gradle
├── clean-up.sh
├── deploy-all.sh
├── device-api
│ ├── bin
│ │ └── index.ts
│ ├── cdk.json
│ ├── config.ts
│ ├── jest.config.js
│ └── lib
│ └── device-api-stack.ts
├── package-lock.json
├── package.json
├── product-api
│ ├── bin
│ │ └── index.ts
│ ├── cdk.json
│ ├── config.ts
│ ├── jest.config.js
│ └── lib
│ └── product-api-stack.ts
├── root-api
│ ├── bin
│ │ └── index.ts
│ ├── cdk.json
│ ├── config.ts
│ ├── jest.config.js
│ └── lib
│ └── root-api-stack.ts
├── screenshots
│ └── apigw.png
└── tsconfig.json
- CloudFormation quotas
- Template body size: 512k
- Template body size in an Amazon S3: 1M
