Skip to main content

Blueprint: apigw-lambda-dynamodb

Serverless REST API backed by NoSQL storage.

Architecture

Internet


API Gateway (HTTP API)
│ CORS, stage routing

Lambda Function (Node.js 20.x)
│ X-Ray tracing, structured logs

DynamoDB Table
(on-demand billing, AWS-managed encryption)

AWS resources provisioned

ResourceDetails
API Gateway HTTP APICORS pre-flight, custom stage name
Lambda FunctionNode.js 20.x, X-Ray tracing enabled
CloudWatch Log GroupRetention: 1 week (dev) / 3 months (prod)
DynamoDB TableV2On-demand billing, AWS-managed encryption
IAM RoleLeast-privilege DynamoDB read/write only
CloudWatch AlarmsLambda errors + throttles

Deploy

idp blueprint deploy apigw-lambda-dynamodb \
--name my-api \
--env dev \
--region us-east-1

Or directly with CDK:

cd blueprints/apigw-lambda-dynamodb
npm install
cdk deploy \
-c serviceName=my-api \
-c env=dev \
-c region=us-east-1 \
-c tableName=items

Context parameters

ParameterRequiredDefaultDescription
serviceNameService name prefix for all resources
envdev, staging, or production
regionAWS region
tableNameDynamoDB table name suffix
tablePartitionKeyNopkPartition key attribute name
tableSortKeyNoSort key attribute name (omit if not needed)
lambdaMemoryMbNo512Lambda memory in MB
lambdaTimeoutSecondsNo30Lambda timeout in seconds
apiStageNameNov1API Gateway stage name
alarmErrorThresholdNo5Lambda error count to trigger alarm

Outputs

OutputDescription
ApiUrlAPI Gateway base URL + stage
TableNameDynamoDB table name
LambdaArnLambda function ARN

Production vs dev differences

SettingDevProduction
PITR (point-in-time recovery)DisabledEnabled
Table removal policyDESTROYRETAIN
Log retention1 week3 months
CORS allowed origins*https://your-domain.com