Skip to main content

must-cdk

Project description

Must CDK

A collection of AWS CDK constructs that implement common architectural patterns and best practices for AWS services. This library aims to simplify the deployment of common cloud infrastructure patterns while maintaining security, scalability, and operational excellence.

Getting Started

TypeScript/JavaScript

npm install must-cdk
# or
yarn add must-cdk

Python

pip install must-cdk

CLI Tool

Install globally to quickly initialize Amplify projects:

# Install CLI globally
npm install -g must-cdk

# Initialize Amplify project with React template
must-cdk amplify init

# Initialize in specific directory
must-cdk amplify init -d /path/to/project

Features

🏗️ Amplify Patterns

  • Next.js application deployment optimizations
  • Multi-environment branch configurations
  • Custom domain and SSL setup
  • GitHub personal access token authentication
  • Automated build and deployment pipelines
  • Migration path to GitHub Apps for production
  • CLI tool for quick project initialization

🚢 ECS CodeDeploy Patterns

  • Blue/Green deployment strategies
  • Load balanced service deployments
  • Auto-scaling configurations
  • Health check implementations
  • Environment variables support
  • Secrets management integration
  • Custom container names
  • Enhanced container configuration
  • Container access after creation

🌐 CloudFront Patterns

  • API Gateway integrations
  • Multi-origin configurations
  • Cross-region setups
  • Security headers and WAF integration
  • Caching strategies
  • Custom domain configurations

🔌 API Gateway Lambda Patterns

  • REST API implementations
  • WebSocket API setups
  • Custom domain configurations
  • Lambda authorizers
  • Rate limiting and API key management

🏷️ Tags Management

Must CDK provides a unified tagging system that automatically applies tags to all resources across all constructs. This system supports both environment-based tags and construct-specific tags.

Environment Tags

Set tags globally using the TAGS environment variable:

# Format: key1=value1,key2=value2
export TAGS="Product=MyApp,Owner=TeamName,Environment=production,CostCenter=engineering"

# Deploy with environment tags
cdk deploy

Construct-Specific Tags

Add tags directly to individual constructs:

// TypeScript
new AmplifyApp(this, 'MyApp', {
  appName: 'my-application',
  repository: 'https://github.com/user/repo',
  tags: {
    Team: 'frontend',
    Version: 'v1.0.0',
    Component: 'web-app'
  }
});
# Python
AmplifyApp(self, 'MyApp',
  app_name='my-application',
  repository='https://github.com/user/repo',
  tags={
    'Team': 'frontend',
    'Version': 'v1.0.0',
    'Component': 'web-app'
  }
)

Tag Precedence

Environment tags take precedence over construct-specific tags:

# Environment variable
export TAGS="Environment=production,Team=platform"

# In your code
tags: {
  Team: 'frontend',      # Will be overridden by environment
  Component: 'web-app'   # Will be preserved
}

# Final tags applied:
# Environment=production (from env)
# Team=platform (from env, overrides construct tag)
# Component=web-app (from construct)

Documentation

Detailed documentation for each construct can be found in:

Examples

The examples directory contains working examples for each construct category:

  • Amplify deployment patterns
  • ECS with CodeDeploy configurations
  • CloudFront distribution setups
  • API Gateway with Lambda integrations

Each example is provided in both TypeScript and Python with detailed comments and instructions.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

must_cdk-0.0.112.tar.gz (295.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

must_cdk-0.0.112-py3-none-any.whl (293.6 kB view details)

Uploaded Python 3

File details

Details for the file must_cdk-0.0.112.tar.gz.

File metadata

  • Download URL: must_cdk-0.0.112.tar.gz
  • Upload date:
  • Size: 295.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for must_cdk-0.0.112.tar.gz
Algorithm Hash digest
SHA256 e76ba5c36feb1f3dde94bf270acf65408a07cc3ecf86ed8b6960cf7b4e827dd2
MD5 5523a93416e15d1e53852707159c6159
BLAKE2b-256 bb3189e1e415ea10af0a91f55bfcc5c661d8e7db4da3eb95deefbba553a26351

See more details on using hashes here.

File details

Details for the file must_cdk-0.0.112-py3-none-any.whl.

File metadata

  • Download URL: must_cdk-0.0.112-py3-none-any.whl
  • Upload date:
  • Size: 293.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for must_cdk-0.0.112-py3-none-any.whl
Algorithm Hash digest
SHA256 b337ed45067cd8aee9208c32f646802b249340a20dbcb6053b251e1475086055
MD5 145d04df436ec720450c8d1bbdb98400
BLAKE2b-256 9e21556671ed0cc293d66b5b9f0225a338d1fec65c294d3e49484d294c29b48f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page