Skip to content
v2.276.0

ProductStackProps Struct ​

Product stack props.

Example ​

ts
import * as lambda from 'aws-cdk-lib/aws-lambda';
import * as cdk from 'aws-cdk-lib';
import { Bucket } from "aws-cdk-lib/aws-s3";

class LambdaProduct extends servicecatalog.ProductStack {
  constructor(scope: Construct, id: string, props: servicecatalog.ProductStackProps) {
    super(scope, id, props);

    new lambda.Function(this, 'LambdaProduct', {
      runtime: lambda.Runtime.PYTHON_3_9,
      code: lambda.Code.fromAsset("./assets"),
      handler: 'index.handler'
    });
  }
}

const userDefinedBucket = new Bucket(this, `UserDefinedBucket`, {
  bucketName: 'amzn-s3-demo-bucket',
});

const product = new servicecatalog.CloudFormationProduct(this, 'Product', {
  productName: "My Product",
  owner: "Product Owner",
  productVersions: [
    {
      productVersionName: "v1",
      cloudFormationTemplate: servicecatalog.CloudFormationTemplate.fromProductStack(new LambdaProduct(this, 'LambdaFunctionProduct', {
        assetBucket: userDefinedBucket,
      })),
    },
  ],
});

Properties ​

analyticsReportingoptionalbooleananalytics_reportingoptionalboolanalyticsReportingoptionalBooleanAnalyticsReportingoptionalboolAnalyticsReportingoptional*bool#
Include runtime versioning information in this Stack.

Default: analyticsReporting setting of containing App, or value of 'aws:cdk:version-reporting' context key

assetBucketoptionalIBucketasset_bucketoptionalIBucketassetBucketoptionalIBucketAssetBucketoptionalIBucketAssetBucketoptionalIBucket#
A Bucket can be passed to store assets, enabling ProductStack Asset support.

Default: No Bucket provided and Assets will not be supported.

descriptionoptionalstringdescriptionoptionalstrdescriptionoptionalStringDescriptionoptionalstringDescriptionoptional*string#
A description of the stack.

Default: No description.

memoryLimitoptionalnumbermemory_limitoptionalint | floatmemoryLimitoptionalNumberMemoryLimitoptionaldoubleMemoryLimitoptional*float64= 128#
The amount of memory (in MiB) to allocate to the AWS Lambda function which replicates the files from the CDK bucket to the destination bucket.

If you are deploying large files, you will need to increase this number accordingly.

serverSideEncryptionoptionalServerSideEncryptionserver_side_encryptionoptionalServerSideEncryptionserverSideEncryptionoptionalServerSideEncryptionServerSideEncryptionoptionalServerSideEncryptionServerSideEncryptionoptionalServerSideEncryption#
A ServerSideEncryption can be enabled to encrypt assets that are put into assetBucket.

Default: No encryption is used

serverSideEncryptionAwsKmsKeyIdoptionalstringserver_side_encryption_aws_kms_key_idoptionalstrserverSideEncryptionAwsKmsKeyIdoptionalStringServerSideEncryptionAwsKmsKeyIdoptionalstringServerSideEncryptionAwsKmsKeyIdoptional*string#
For AWS_KMS ServerSideEncryption a KMS KeyId must be provided which will be used to encrypt assets.

Default: No KMS KeyId and SSE_KMS encryption cannot be used