Create an empty directory on your system:
mkdir cdk-workshop && cd cdk-workshop
We will use
cdk init to create a new Python CDK project:
cdk init sample-app --language python
Output should look like this (you can safely ignore warnings about initialization of a git repository, this probably means you don’t have git installed, which is fine for this workshop):
Applying project template sample-app for python Initializing a new git repository... Executing Creating virtualenv... # Welcome to your CDK Python project! You should explore the contents of this template. It demonstrates a CDK app with two instances of a stack (`HelloStack`) which also uses a user-defined construct (`HelloConstruct`). The `cdk.json` file tells the CDK Toolkit how to execute your app. This project is set up like a standard Python project. The initialization process also creates a virtualenv within this project, stored under the .env directory. To create the virtualenv it assumes that there is a `python3` executable in your path with access to the `venv` package. If for any reason the automatic creation of the virtualenv fails, you can create the virtualenv manually once the init process completes. To manually create a virtualenv on MacOS and Linux: $ python3 -m venv .env After the init process completes and the virtualenv is created, you can use the following step to activate your virtualenv. $ source .env/bin/activate If you are a Windows platform, you would activate the virtualenv like this: % .env\Scripts\activate.bat Once the virtualenv is activated, you can install the required dependencies. $ pip install -r requirements.txt At this point you can now synthesize the CloudFormation template for this code. $ cdk synth You can now begin exploring the source code, contained in the hello directory. There is also a very trivial test included that can be run like this: $ pytest To add additional dependencies, for example other CDK libraries, just add to your requirements.txt file and rerun the `pip install -r requirements.txt` command. # Useful commands * `cdk ls` list all stacks in the app * `cdk synth` emits the synthesized CloudFormation template * `cdk deploy` deploy this stack to your default AWS account/region * `cdk diff` compare deployed stack with current state * `cdk docs` open CDK documentation Enjoy!
As you can see, it shows us a bunch of useful commands to get us started.