Skip to main content

Quick Start

Get your first application running with sdlcs-aws-cdk-lib in under 5 minutes.

Create a New CDK App

mkdir my-cdk-app
cd my-cdk-app
npm init -y
npm install aws-cdk-lib constructs sdlcs-aws-cdk-lib

Project Setup

1. Create cdk.json

{
"app": "npx ts-node bin/app.ts",
"context": {
"stage": "dev"
}
}

2. Create bin/app.ts

#!/usr/bin/env node
import { App } from 'sdlcs-aws-cdk-lib';
import { MyStack } from '../lib/my-stack';

const app = new App();
new MyStack(app, 'MyStack');

3. Create lib/my-stack.ts

import { Stack, StackProps } from 'sdlcs-aws-cdk-lib';
import { Construct } from 'constructs';
import { Code, Runtime } from 'aws-cdk-lib/aws-lambda';
import { BlueGreenLambda } from 'sdlcs-aws-cdk-lib/lib/lambda/BlueGreenLambda';

export class MyStack extends Stack {
constructor(scope: Construct, id: string, props?: StackProps) {
super(scope, id, props);

// Get current environment from context
const sdlc = this.node.tryGetContext('stage') || 'dev';

// Create Lambda with blue-green deployment
new BlueGreenLambda(this, 'MyLambda', {
functionName: `my-function-${sdlc}`,
handler: 'index.handler',
runtime: Runtime.NODEJS_20_X,
code: Code.fromInline(`
exports.handler = async (event) => {
return {
statusCode: 200,
body: JSON.stringify({ message: 'Hello from ${sdlc}!' })
};
};
`),
});
}
}

Deploy Your App

Development Environment

npx cdk deploy --context stage=dev

Staging Environment

npx cdk deploy --context stage=staging

Production Environment

npx cdk deploy --context stage=prod

What Just Happened?

  1. Environment Detection: The context strategy automatically detected your environment (dev/staging/prod)
  2. Deployment Strategy: Applied appropriate deployment strategy:
    • dev: Instant deployment (ALL_AT_ONCE)
    • staging: 5-minute canary (10% traffic shift)
    • prod: 15-minute canary (10% traffic shift)
  3. CloudWatch Alarms: Automatically configured for automatic rollback on errors
  4. CodeDeploy: Set up for blue-green deployment management

Verify Deployment

# Get stack outputs
aws cloudformation describe-stacks \
--stack-name MyStack \
--query 'Stacks[0].Outputs'

# Invoke Lambda function
aws lambda invoke \
--function-name my-function-dev \
--output json \
response.json

cat response.json

Next Steps

Congratulations! You've deployed your first application with sdlcs-aws-cdk-lib.

Continue learning:

Troubleshooting

Deployment Fails

Check CloudFormation events:

aws cloudformation describe-stack-events \
--stack-name MyStack \
--max-items 10

Lambda Errors

View Lambda logs:

aws logs tail /aws/lambda/my-function-dev --follow

CodeDeploy Issues

Check deployment details:

aws deploy get-deployment \
--deployment-id <deployment-id>