GithubHelp home page GithubHelp logo

cdk-app-python's Introduction

cdk-app-python

This project creates CDK app with an instance of a stack (my_first_cdk_app_stack) which creates a simple EKS cluster, a SSM parameter with the value development, staging and production, a custom resource backed by a lambda function that returns a value in SSM based on the environment. It returns 1 if the environment is development, 2 if the environment is production or staging and then, as a final step, it creates a nginx helm chart that uses this returned value as parameter to define the replicas. Please take into account that this project uses L2 constructs and other resources are created under the hood.

image

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 .venv 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 .venv

After the init process completes and the virtualenv is created, you can use the following step to activate your virtualenv.

$ source .venv/bin/activate

If you are a Windows platform, you would activate the virtualenv like this:

% .venv\Scripts\activate.bat

Once the virtualenv is activated, you can install the required dependencies.

NOTE: Please take into account that you need to execute the pip command from the virtual enviroment, instead of the one configured in your machine globally.

$ pip install -r requirements.txt

CDK Execution

You need to configure your AWS credentials

-> On Mac/Linux: ~/.aws/credentials

-> On Windows: C:\Users\username.aws\credentials

Use this link as reference -> https://docs.aws.amazon.com/powershell/latest/userguide/specifying-your-aws-credentials.html

At this point you can now synthesize the CloudFormation template for this code. This project should be executed using a parameter from development, staging and production

To verify composition of template:

$ cdk synth --parameters environment=development

To create resources:

$ cdk deploy --parameters environment=production

There is a test configured that you can execute as well:

$ 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!

cdk-app-python

cdk-app-python's People

Contributors

victorcardonaf avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.