1.0.0 Major Version Release
Version 1.0.0
of the AWS DDK includes the following high-level changes and updates.
- Source code is now written in Typescript and uses JSII to package both python and typescript versions of the library. In the near future we will add support for all AWS CDK supported programming languages.
- A new optional config construct
Configurator()
has been implemented to replace the requiredConfig()
construct from earlier verisons. - The DDK CLI has been deprectated. Projects that were bootstrapped using
ddk bootstrap
will still be supported. - New stages have been added
Config
Configurator
is the new optional construct used to manage config across multiple environments. While this can handle a variety of use cases we encourage users to build their own config mechanisms when it Configurator
is not the best option. See this how-to guide for more on using Configurator.
Bootstrapping
Customers that have already bootstrapped accounts and regions using ddk bootstrap
can easily use the same roles by following the Using Legacy DDK Bootstrap Roles section of this guide.
Stage Properties
Because we have shifted to using typescript interfaces provided by the AWS CDK some properties may look slightly different in the new version. We will outline some common changes below, but always refer to the API documentation if you are unsure.
- Data Pipeline: Now requires positional arguments in the
add_stage()
method.
-
new DataPipeline( this, "DDK Pipeline", {} ).addStage({stage: myFirstStage}).addStage({stage: mySecondStage})
-
( DataPipeline(scope=self, id="DDK Pipeline") .add_stage(stage=my_first_stage) .add_stage(stage=my_second_stage) )
- Changes to SqsToLambdaStage Properties: Function and queue properties now have their own dedicated positional argument.
-
new SqsToLambdaStage( this, "Lambda Stage", { lambdaFunctionProps: { functionName: "dummy-function", code: lambda.Code.fromAsset(path.join(__dirname, "/../src/")), handler: "commons.handlers.lambda_handler", runtime: lambda.Runtime.PYTHON_3_8, }, sqsQueueProps: { queueName: "dummy-queue.fifo", visibilityTimeout: cdk.Duration.minutes(5), }, } )
-
SqsToLambdaStage( self, id="lambda-stage", lambda_function_props={ "code": Code.from_asset("./ddk_app/lambda_handlers"), "handler": "handler.lambda_handler", "layers": [ LayerVersion.from_layer_version_arn( self, id="layer", layer_version_arn=f"arn:aws:lambda:{self.region}:336392948345:layer:AWSDataWrangler-Python39:1", ) ], "runtime": Runtime.PYTHON_3_9, }, )
- BaseStack: No longer requires an environment id. See
BaseStackProps()
for more details.
-
new BaseStack(app, "my-stack", {});
-
BaseStack(app, "my-stack")