Skip to content

alexpulver/cdk-chalice

Repository files navigation

cdk-chalice

PyPI Version PythonSupport PyPI status Downloads Build Status codecov Quality Gate Status Code style: black Contributors

AWS CDK construct for AWS Chalice

This library allows to include an AWS Chalice application into a broader AWS Cloud Development Kit (AWS CDK) application.

The following approach to AWS CDK and AWS Chalice interoperability is taken by the library:

  1. Manually create Chalice application (chalice new-project) with default "dev" stage in .chalice/config.json. cdk-chalice library could perform this Chalice application scaffolding automatically - create new project, or skip this step if project already exists in the target directory (this is chalice new-project behavior). The choice to keep this step manual (for now) was made to hopefully make adoption easier for developers who already have existing Chalice projects.

  2. Manually create CDK application (cdk init [ARGS])

  3. Use cdk_chalice.Chalice class to generate stage per CDK stack in .chalice/config.json and run chalice package. This is the main purpose of cdk-chalice - allow passing CDK tokens for resources, such as DynamoDB table, to SAM template generated by chalice package (see example here), and also to automate the packaging process itself.

If AWS Chalice doesn't support certain options through its configuration mechanism, there are two ways to address this:

  • Open an issue for AWS Chalice
  • Customize the resources after they have been imported into the CDK stack. cdk-chalice uses AWS CDK cloudformation-include module to enable customization. See cdk-chalice API documentation for example and additional details.

The API documentation and usage example are available at https://cdk-chalice.softwhat.com/

Installation

Install and update using pip:

pip install -U cdk-chalice