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