/aws-cdk-examples

Example projects using the AWS CDK

Primary LanguagePythonApache License 2.0Apache-2.0

AWS CDK Examples

This repository contains a set of example projects for the AWS Cloud Development Kit. Some examples are only available in TypeScript, there is a guide on how to read TypeScript code and translate it to Python here.

Table of Contents

  1. TypeScript examples
  2. Java examples
  3. Python examples
  4. JavaScript examples
  5. .NET examples

TypeScript examples

To run a TypeScript example, say my-widget-service:

$ npm install -g aws-cdk
$ cd typescript/my-widget-service
$ npm install
$ npm run build
$ cdk deploy  // Deploys the CloudFormation template

# Afterwards
$ cdk destroy
Example Description
api-cors-lambda-crud-dynamodb Creating a single API with CORS, and five Lambdas doing CRUD operations over a single DynamoDB
application-load-balancer Using an AutoScalingGroup with an Application Load Balancer
appsync-graphql-dynamodb Creating a single GraphQL API with an API Key, and four Resolvers doing CRUD operations over a single DynamoDB
classic-load-balancer Using an AutoScalingGroup with a Classic Load Balancer
custom-resource Shows adding a Custom Resource to your CDK app
elasticbeanstalk Elastic Beanstalk example using L1 with a Blue/Green pipeline (community contributed)
ecs-cluster Provision an ECS Cluster with custom Autoscaling Group configuration
ecs-network-load-balanced-service Starting a container fronted by a network load balancer on ECS
ecs-service-with-task-placement Starting a container ECS with task placement specifications
ecs-service-with-advanced-alb-config Starting a container fronted by a load balancer on ECS with added load balancer configuration
ecs-service-with-task-networking Starting an ECS service with task networking, allowing ingress traffic to the task but blocking for the instance
fargate-application-load-balanced-service Starting a container fronted by an application load balancer on Fargate
fargate-service-with-auto-scaling Starting an ECS service of FARGATE launch type that auto scales based on average CPU Utilization
ecs-cross-stack-load-balancer Shows how to use a single load balancer with services in other stacks
lambda-cron Running a Lambda on a schedule
my-widget-service Use Lambda to serve up widgets
resource-overrides Shows how to override generated CloudFormation code
static-site A static site using CloudFront
stepfunctions-job-poller A simple StepFunctions workflow
ecs-service-with-logging Starting a container fronted by a load balancer on ECS
fargate-service-with-logging Starting a container fronted by a load balancer on Fargate
custom-logical-names Example of how to override logical name allocation

Java examples

To run the Java examples:

$ npm install -g aws-cdk
$ cd java/my-widget-service
$ mvn compile
$ cdk deploy

# Afterwards
$ cdk destroy
Example Description
fargate-load-balanced-service Starting a container fronted by a load balancer on Fargate
hello-world A demo application that uses the CDK in Java
lambda-cron Running a Lambda on a schedule
resource-overrides Use of the resource overrides (aka "escape hatch") mechanism.
stepfunctions-job-poller A simple StepFunctions workflow
static-site A static site using CloudFront
api-cors-lambda-crud-dynamodb Creating a single API with CORS, and five Lambdas doing CRUD operations over a single DynamoDB
classic-load-balancer Using an AutoScalingGroup with a Classic Load Balancer

Python examples

To run a Python example, say my-widget-service:

$ npm install -g aws-cdk
$ cd python/my-widget-service
$ pip install -r requirements.txt    # Best to do this in a virtualenv
$ cdk deploy                         # Deploys the CloudFormation template

# Afterwards
$ cdk destroy
Example Description
api-cors-lambda Shows creation of Rest API (GW) with an /example GET endpoint, with CORS enabled
application-load-balancer Using an AutoScalingGroup with an Application Load Balancer
appsync-graphql-dynamodb Creating a single GraphQL API with an API Key, and four Resolvers doing CRUD operations over a single DynamoDB
classic-load-balancer Using an AutoScalingGroup with a Classic Load Balancer
custom-resource Shows adding a Custom Resource to your CDK app
dockerized-app Deploys a containerized app into 3 tiers with userdata in an autoscaling group
ecs-cluster Provision an ECS Cluster with custom Autoscaling Group configuration
ecs-load-balanced-service Starting a container fronted by a load balancer on ECS
ecs-service-with-task-placement Starting a container ECS with task placement specifications
ecs-service-with-advanced-alb-config Starting a container fronted by a load balancer on ECS with added load balancer configuration
ecs-service-with-task-networking Starting an ECS service with task networking, allowing ingress traffic to the task but blocking for the instance
fargate-load-balanced-service Starting a container fronted by a load balancer on Fargate
fargate-service-with-autoscaling Starting an ECS service of FARGATE launch type that auto scales based on average CPU Utilization
lambda-cron Running a Lambda on a schedule
lambda-s3-trigger S3 trigger for Lambda
rds Creating a MySQL RDS database inside its dedicated VPC
stepfunctions A simple StepFunctions workflow
url-shortner Demo from the Infrastructure is Code with the AWS CDK AWS Online Tech Talk

JavaScript examples

Select the following link to see how to install and run the example.

Example Description
aws-cdk-changelogs-demo A full serverless Node.js application stack deployed using CDK. It uses AWS Lambda, AWS Fargate, DynamoDB, Elasticache, S3, and CloudFront.

.NET examples

Example Description
my-widget-service Use Lambda to serve up widgets
random-writer This sample application demonstrates some essential mechanisms of the AWS CDK for .NET. It uses AWS Lambda, DynamoDB, CloudWatch.

To run a .NET example, say my-widget-service:

$ npm install -g aws-cdk
$ cd csharp/my-widget-service
$ dotnet build src
$ cdk deploy  // Deploys the CloudFormation template

# Afterwards
$ cdk destroy

License

This library is licensed under the Apache 2.0 License.