Initialize a CDK project and set up files required to build a CDK project.
npm install -g aws-cdk
.sample
for your project and run cdk init app --language typescript
to initialize a CDK project. You can choose language as csharp, fsharp, go, java, javascript, python or typescript.cdk.json
, tsconfig.json
, package.json
- These are configuration files that are used to define some global settings for your CDK project.bin/sample.ts
- This is the entry point for your CDK project. This file is used to define the stack that you want to create.lib/sample-stack.ts
- This is the main file that will contain the code for your CDK project.lib/sample-stack.ts
file, add the following code to create a lambda function:import * as cdk from 'aws-cdk-lib';
import * as lambda from 'aws-cdk-lib/aws-lambda';
import { Construct } from 'constructs';
export class SampleStack extends cdk.Stack {
constructor(scope: Construct, id: string, props?: cdk.StackProps) {
super(scope, id, props);
const hello = new lambda.Function(this, 'SampleLambda', {
runtime: lambda.Runtime.NODEJS_14_X,
code: lambda.Code.fromInline('exports.handler = async () => "hello world";'),
handler: 'index.handler'
});
}
}
This will create a sample lambda function that returns “hello world” when invoked.
Before you deploy your project. You need to bootstrap your project. This will create a CloudFormation stack that will be used to deploy your project. You can bootstrap your project by running cdk bootstrap
.
Learn more about bootstrapping here.
npm install
to install all the dependencies for your project whenever you make changes.cdk synth
to synthesize the CloudFormation template for your project. You will see a new file called cdk.out/CDKToolkit.template.json
that contains the CloudFormation template for your project.cdk diff
to see the changes that will be made to your AWS account. You will see a new stack called SampleStack
that will create a lambda function and all the changes associated with it.cdk deploy
to deploy your project. You should see a new stack called created in your AWS account under CloudFormation.SampleLambda
created in your account.