Skip to main content

Generate directly usable AWS CloudFormation template with aws-cdk v2.

Project description

cdk-bootstrapless-synthesizer

npm version PyPI npm PyPI - Downloads

A bootstrapless stack synthesizer that is designated to generate templates that can be directly used by AWS CloudFormation.

Please use ^1.0.0 for cdk version 1.x.x, use ^2.0.0 for cdk version 2.x.x

Usage

# Example automatically generated from non-compiling source. May contain errors.
import { BootstraplessStackSynthesizer } from 'cdk-bootstrapless-synthesizer';

main.ts

# Example automatically generated from non-compiling source. May contain errors.
const app = new App();

new MyStack(app, 'my-stack-dev', {
  synthesizer: new BootstraplessStackSynthesizer({
    templateBucketName: 'cfn-template-bucket',

    fileAssetBucketName: 'file-asset-bucket-${AWS::Region}',
    fileAssetRegionSet: ['us-west-1', 'us-west-2'],
    fileAssetPrefix: 'file-asset-prefix/latest/',

    imageAssetRepositoryName: 'your-ecr-repo-name',
    imageAssetAccountId: '1234567890',
    imageAssetTagPrefix: 'latest-',
    imageAssetRegionSet: ['us-west-1', 'us-west-2'],
  }),
});

// Or by environment variables
env.BSS_TEMPLATE_BUCKET_NAME = 'cfn-template-bucket';

env.BSS_FILE_ASSET_BUCKET_NAME = 'file-asset-bucket-\${AWS::Region}';
env.BSS_FILE_ASSET_REGION_SET = 'us-west-1,us-west-2';
env.BSS_FILE_ASSET_PREFIX = 'file-asset-prefix/latest/';

env.BSS_IMAGE_ASSET_REPOSITORY_NAME = 'your-ecr-repo-name';
env.BSS_IMAGE_ASSET_ACCOUNT_ID = '1234567890';
env.BSS_IMAGE_ASSET_TAG_PREFIX = 'latest-';
env.BSS_IMAGE_ASSET_REGION_SET = 'us-west-1,us-west-2';

new MyStack(app, 'my-stack-dev2', {
  synthesizer: new BootstraplessStackSynthesizer(),
});

// use Aspect to grant the role to pull ECR repository from account BSS_IMAGE_ASSET_ACCOUNT_ID

main.ts

Synth AWS CloudFormation templates, assets and upload them

$ cdk synth
$ npx cdk-assets publish -p cdk.out/my-stack-dev.assets.json -v

Limitations

When using BSS_IMAGE_ASSET_ACCOUNT_ID to push ECR repository to shared account, you need use Aspect to grant the role with policy to pull the repository from cross account.

Currently only below scenarios are supported,

  • ECS
  • SageMaker training job integrated with Step Functions

For other scenarios, the feature request or pull request are welcome.

Sample Project

See Sample Project

API Reference

See API Reference for API details.

Project details


Download files

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

Source Distribution

cdk-bootstrapless-synthesizer-2.1.0.tar.gz (52.8 kB view details)

Uploaded Source

Built Distribution

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

cdk_bootstrapless_synthesizer-2.1.0-py3-none-any.whl (51.9 kB view details)

Uploaded Python 3

File details

Details for the file cdk-bootstrapless-synthesizer-2.1.0.tar.gz.

File metadata

  • Download URL: cdk-bootstrapless-synthesizer-2.1.0.tar.gz
  • Upload date:
  • Size: 52.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.1

File hashes

Hashes for cdk-bootstrapless-synthesizer-2.1.0.tar.gz
Algorithm Hash digest
SHA256 149a752791a51b29dc9bf0690b3214beadd42d46571bbbbeb01a133d6a0a782f
MD5 2d572df96111f670fe0db392c5ac62ee
BLAKE2b-256 436853ca8065bd08fd24e3a5e3116074687bb49999538f18892255edf6e1c533

See more details on using hashes here.

File details

Details for the file cdk_bootstrapless_synthesizer-2.1.0-py3-none-any.whl.

File metadata

  • Download URL: cdk_bootstrapless_synthesizer-2.1.0-py3-none-any.whl
  • Upload date:
  • Size: 51.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.1

File hashes

Hashes for cdk_bootstrapless_synthesizer-2.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4dcefe697b229bed31481ee4130e1c6dc3f67645267efc4bcf991bf1fd7f5dd9
MD5 a8b62b75d3021a2f8c61e90ce2cb51e0
BLAKE2b-256 0185bec71bf76cad239388923d72a1de9b7ecd6b6f5949075ff99fec4972ed14

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