Skip to content

v0.35.0

Compare
Choose a tag to compare
@eladb eladb released this 19 Jun 17:10
c5e43e2

Bug Fixes

Code Refactoring

Features

  • cli: Expose props in CFN resources and remove propertyOverrides (#2372) (#2372) (aa61dfb), closes #2100
  • cli: deploy/destory require explicit stack selection if app contains more than a single stack (#2772) (118a716), closes #2731
  • cli: Remove stack rename support (#2819) (0f30e39), closes #2670
  • cloudformation: add option to restrict data returned AwsCustomResource (#2859) (a691900), closes #2825
  • cloudformation: Add removalPolicy on CustomResource (#2770) (859248a)
  • cloudfront: add Lambda associations (#2760) (b088c8c)
  • codepipeline: final form of the CodeBuild Pipeline action. (#2716) (c10fc9a)
  • core: show token creation stack trace upon resolve error (#2886) (f4c8dcd)
  • ecs: add metrics for Fargate services (#2798) (acf015d)
  • ecs-patterns: LoadBalancedFargateService - allow specifying containerName and role (#2764) (df12197)
  • elasticloadbalancing: add crossZone load balancing (#2787) (192bab7), closes #2786
  • lambda: Expose $LATEST function version (#2792) (55d1bc8), closes #2776
  • s3: add CORS Property to S3 Bucket (#2101) (#2843) (1a386d8)
  • s3: add missing storage classes and API cleanups (#2834) (5cd9609), closes #2708
  • stepfunctions: add grantStartExecution() (#2793) (da32176)
  • stepfunctions: add support for AmazonSageMaker APIs (#2808) (8b1f3ed), closes #1314
  • stepfunctions: waitForTaskToken for Lambda, SQS, SNS (#2686) (d017a14), closes #2658 #2735
  • formalize the concept of physical names, and use them for cross-environment CodePipelines. (#1924) (6daaca8)

BREAKING CHANGES

  • assets: AssetProps.packaging has been removed and is now automatically discovered based on the file type.
  • assets: ZipDirectoryAsset has been removed, use aws-s3-assets.Asset.
  • assets: FileAsset has been removed, use aws-s3-assets.Asset.
  • lambda: Code.directory and Code.file have been removed. Use Code.asset.
  • assets-docker: The module has been renamed to aws-ecr-assets
  • ecs: the property that specifies the type of EC2 AMI optimized for ECS was renamed to hardwareType from hwType.
  • codebuild: the method addToRoleInlinePolicy in CodeBuild's Project class has been removed.
  • dynamodb: TableOptions.pitrEnabled renamed to pointInTimeRecovery.
  • dynamodb: TableOptions.sseEnabled renamed to serverSideEncryption.
  • dynamodb: TableOptions.ttlAttributeName renamed to timeToLiveAttribute.
  • dynamodb: TableOptions.streamSpecification renamed stream.
  • ecs: ContainerImage.fromAsset() now takes only build directory
    directly (no need to pass scope or id anymore).
  • secretsmanager: ISecret.secretJsonValue renamed to secretValueFromJson.
  • ssm: ParameterStoreString has been removed. Use StringParameter.fromStringParameterAttributes.
  • ssm: ParameterStoreSecureString has been removed. Use StringParameter.fromSecureStringParameterAttributes.
  • ssm: ParameterOptions.name was renamed to parameterName.
  • logs: newStream renamed to addStream and doesn't need a scope
  • logs: newSubscriptionFilter renamed to addSubscriptionFilter and doesn't need a scope
  • logs: newMetricFilter renamed to addMetricFilter and doesn't need a scope
  • logs: NewSubscriptionFilterProps renamed to SubscriptionProps
  • logs: NewLogStreamProps renamed to LogStreamOptions
  • logs: NewMetricFilterProps renamed to MetricFilterOptions
  • logs: JSONPattern renamed to JsonPattern
  • apigateway: MethodOptions.authorizerId is now called authorizer and accepts an IAuthorizer which is a placeholder interface for the authorizer resource.
  • apigateway: restapi.executeApiArn renamed to arnForExecuteApi.
  • apigateway: restapi.latestDeployment and deploymentStage are now read-only.
  • events: EventPattern.detail is now a map.
  • events: scheduleExpression: string is now schedule: Schedule.
  • multiple modules have been changed to use cdk.RemovalPolicy
    to configure the resource's removal policy.
  • core: applyRemovalPolicy is now CfnResource.applyRemovalPolicy.
  • core: RemovalPolicy.Orphan has been renamed to Retain.
  • core: RemovalPolicy.Forbid has been removed, use Retain.
  • ecr: RepositoryProps.retain is now removalPolicy, and defaults to Retain instead of remove since ECR is a stateful resource
  • kms: KeyProps.retain is now removalPolicy
  • logs: LogGroupProps.retainLogGroup is now removalPolicy
  • logs: LogStreamProps.retainLogStream is now removalPolicy
  • rds: DatabaseClusterProps.deleteReplacePolicy is now removalPolicy
  • rds: DatabaseInstanceNewProps.deleteReplacePolicy is now removalPolicy
  • codebuild: rename BuildSource to Source, S3BucketSource to S3Source, BuildArtifacts to Artifacts, S3BucketBuildArtifacts to S3Artifacts
  • codebuild: the classes CodePipelineBuildSource, CodePipelineBuildArtifacts, NoBuildSource, and NoBuildArtifacts have been removed
  • codebuild: rename buildScriptAsset and buildScriptAssetEntrypoint to buildScript and buildScriptEntrypoint, respectively
  • cli: All L1 ("Cfn") Resources attributes are now prefixed with
    attr instead of the resource type. For example, in S3 bucket.bucketArn is now bucket.attrArn.
  • propertyOverrides has been removed from all "Cfn" resources, instead
    users can now read/write resource properties directly on the resource class. For example, instead of lambda.propertyOverrides.runtime just use lambda.runtime.
  • codepipeline: the property designating the name of the stage when creating a CodePipeline is now called stageName instead of name
  • codepipeline: the output and extraOutputs properties of the CodeBuildAction were merged into one property, outputs.
  • lambda:
    • Renamed Function.addLayer to addLayers and made it variadic
    • Removed IFunction.handler property
    • Removed IVersion.versionArn property (the value is at functionArn)
    • Removed SingletonLayerVersion
    • Stopped exporting LogRetention
  • cli: if an app includes more than one stack "cdk deploy" and "cdk destroy" now require that an explicit selector will be passed. Use "cdk deploy '*'" if you want to select all stacks.
  • iam: PolicyStatement no longer has a fluid API, and accepts a
    props object to be able to set the important fields.
  • iam: rename ImportedResourcePrincipal to UnknownPrincipal.
  • iam: managedPolicyArns renamed to managedPolicies, takes
    return value from ManagedPolicy.fromAwsManagedPolicyName().
  • iam: PolicyDocument.postProcess() is now removed.
  • iam: PolicyDocument.addStatement() renamed to addStatements.
  • iam: PolicyStatement is no longer IResolvable, call .toStatementJson()
    to retrieve the IAM policy statement JSON.
  • iam: AwsPrincipal has been removed, use ArnPrincipal instead.
  • s3: s3.StorageClass is now an enum-like class instead of a regular
    enum. This means that you need to call .value in order to obtain it's value.
  • s3: s3.Coordinates renamed to s3.Location
  • codepipeline: Artifact.s3Coordinates renamed to Artifact.s3Location.
  • codebuild: buildSpec argument is now a BuildSpec object.
  • lambda: lambda.Runtime.NodeJS* are now lambda.Runtime.Nodejs*
  • core: multiple changes to the Stack API
  • core: stack.name renamed to stack.stackName
  • core: stack.stackName will return the concrete stack name. Use Aws.stackName to indicate { Ref: "AWS::StackName" }.
  • core: stack.account and stack.region will return the concrete account/region only if they are explicitly specified when the stack is defined (under the env prop). Otherwise, they will return a token that resolves to the AWS::AccountId and AWS::Region intrinsic references. Use Context.getDefaultAccount() and Context.getDefaultRegion() to obtain the defaults passed through the toolkit in case those are needed. Use Token.isUnresolved(v) to check if you have a concrete or intrinsic.
  • core: stack.logicalId has been removed. Use stack.getLogicalId()
  • core: stack.env has been removed, use stack.account, stack.region and stack.environment instead
  • core: stack.accountId renamed to stack.account (to allow treating account more abstractly)
  • core: AvailabilityZoneProvider can now be accessed through Context.getAvailabilityZones()
  • core: SSMParameterProvider can now be accessed through Context.getSsmParameter()
  • core: parseArn is now Arn.parse
  • core: arnFromComponents is now arn.format
  • core: node.lock and node.unlock are now private
  • core: stack.requireRegion and requireAccountId have been removed. Use Token.unresolved(stack.region) instead
  • core: stack.parentApp have been removed. Use App.isApp(stack.node.root) instead.
  • core: stack.missingContext is now private
  • core: stack.renameLogical have been renamed to stack.renameLogicalId
  • core: IAddressingScheme, HashedAddressingScheme and LogicalIDs are now internal. Override Stack.allocateLogicalId to customize how logical IDs are allocated to resources.
  • cli: The CLI no longer accepts --rename, and the stack
    names are now immutable on the stack artifact.
  • sns: using a queue, lambda, email, URL as SNS Subscriber now
    requires an integration object from the @aws-cdk/aws-sns-subscribers
    package.
  • ecs-patterns: Renamed QueueWorkerService for base, ec2 and fargate to QueueProcessingService, QueueProcessingEc2Service, and QueueProcessingFargateService.
  • iam: roleName in RoleProps is now of type PhysicalName
  • s3: bucketName in BucketProps is now of type PhysicalName
  • codebuild: roleName in RoleProps is now of type PhysicalName