All Downloads are FREE. Search and download functionalities are using the official Maven repository.

software.amazon.awscdk.cli.lib.alpha.package-info Maven / Gradle / Ivy

/**
 * 

AWS CDK CLI Library

*

* --- *

* cdk-constructs: Experimental *

*

*

* The APIs of higher level constructs in this module are experimental and under active development. * They are subject to non-backward compatible changes or removal in any future version. These are * not subject to the Semantic Versioning model and breaking changes will be * announced in the release notes. This means that while you may use them, you may need to update * your source code when upgrading to a newer version of this package. *

*

*

*


*

* *

*

⚠️ Experimental module

*

* This package is highly experimental. Expect frequent API changes and incomplete features. * Known issues include: *

*

    *
  • JavaScript/TypeScript only\ * The jsii packages are currently not in a working state.
  • *
  • No useful return values\ * All output is currently printed to stdout/stderr
  • *
  • Missing or Broken options\ * Some CLI options might not be available in this package or broken
  • *
*

*

Overview

*

* Provides a library to interact with the AWS CDK CLI programmatically from jsii supported languages. * Currently the package includes implementations for: *

*

    *
  • cdk deploy
  • *
  • cdk synth
  • *
  • cdk bootstrap
  • *
  • cdk destroy
  • *
  • cdk list
  • *
*

*

Setup

*

*

AWS CDK app directory

*

* Obtain an AwsCdkCli class from an AWS CDK app directory (containing a cdk.json file): *

*

 * AwsCdkCli cli = AwsCdkCli.fromCdkAppDirectory("/path/to/cdk/app");
 * 
*

*

Cloud Assembly Directory Producer

*

* You can also create AwsCdkCli from a class implementing ICloudAssemblyDirectoryProducer. * AWS CDK apps might need to be synthesized multiple times with additional context values before they are ready. *

* The produce() method of the ICloudAssemblyDirectoryProducer interface provides this multi-pass ability. * It is invoked with the context values of the current iteration and should use these values to synthesize a Cloud Assembly. * The return value is the path to the assembly directory. *

* A basic implementation would look like this: *

*

 * public class MyProducer implements ICloudAssemblyDirectoryProducer {
 *     public Promise produce(Map<String, Object> context) {
 *         App app = App.Builder.create().context(context).build();
 *         Stack stack = new Stack(app);
 *         return app.synth().getDirectory();
 *     }
 * }
 * 
*

* For all features (e.g. lookups) to work correctly, cdk.App() must be instantiated with the received context values. * Since it is not possible to update the context of an app, it must be created as part of the produce() method. *

* The producer can than be used like this: *

*

 * AwsCdkCli cli = AwsCdkCli.fromCloudAssemblyDirectoryProducer(new MyProducer());
 * 
*

*

Commands

*

*

list

*

*

 * // await this asynchronous method call using a language feature
 * cli.list();
 * 
*

*

synth

*

*

 * // await this asynchronous method call using a language feature
 * cli.synth(SynthOptions.builder()
 *         .stacks(List.of("MyTestStack"))
 *         .build());
 * 
*

*

bootstrap

*

*

 * // await this asynchronous method call using a language feature
 * cli.bootstrap();
 * 
*

*

deploy

*

*

 * // await this asynchronous method call using a language feature
 * cli.deploy(DeployOptions.builder()
 *         .stacks(List.of("MyTestStack"))
 *         .build());
 * 
*

*

destroy

*

*

 * // await this asynchronous method call using a language feature
 * cli.destroy(DestroyOptions.builder()
 *         .stacks(List.of("MyTestStack"))
 *         .build());
 * 
*/ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) package software.amazon.awscdk.cli.lib.alpha;




© 2015 - 2024 Weber Informatics LLC | Privacy Policy