aws-cdk-lib.CustomResourceProviderProps

interface CustomResourceProviderProps

LanguageType name
.NETAmazon.CDK.CustomResourceProviderProps
Gogithub.com/aws/aws-cdk-go/awscdk/v2#CustomResourceProviderProps
Javasoftware.amazon.awscdk.CustomResourceProviderProps
Pythonaws_cdk.CustomResourceProviderProps
TypeScript (source)aws-cdk-lib » CustomResourceProviderProps

Initialization properties for CustomResourceProvider.

Example

const provider = CustomResourceProvider.getOrCreateProvider(this, 'Custom::MyCustomResourceType', {
  codeDirectory: `${__dirname}/my-handler`,
  runtime: CustomResourceProviderRuntime.NODEJS_14_X,
});
provider.addToRolePolicy({
  Effect: 'Allow',
  Action: 's3:GetObject',
  Resource: '*',
})

Properties

NameTypeDescription
codeDirectorystringA local file system directory with the provider's code.
runtimeCustomResourceProviderRuntimeThe AWS Lambda runtime and version to use for the provider.
description?stringA description of the function.
environment?{ [string]: string }Key-value pairs that are passed to Lambda as Environment.
memorySize?SizeThe amount of memory that your function has access to.
policyStatements?any[]A set of IAM policy statements to include in the inline policy of the provider's lambda function.
timeout?DurationAWS Lambda timeout for the provider.
useCfnResponseWrapper?booleanWhether or not the cloudformation response wrapper (nodejs-entrypoint.ts) is used. If set to true, nodejs-entrypoint.js is bundled in the same asset as the custom resource and set as the entrypoint. If set to false, the custom resource provided is the entrypoint.

codeDirectory

Type: string

A local file system directory with the provider's code.

The code will be bundled into a zip asset and wired to the provider's AWS Lambda function.


runtime

Type: CustomResourceProviderRuntime

The AWS Lambda runtime and version to use for the provider.


description?

Type: string (optional, default: No description.)

A description of the function.


environment?

Type: { [string]: string } (optional, default: No environment variables.)

Key-value pairs that are passed to Lambda as Environment.


memorySize?

Type: Size (optional, default: Size.mebibytes(128))

The amount of memory that your function has access to.

Increasing the function's memory also increases its CPU allocation.


policyStatements?

Type: any[] (optional, default: no additional inline policy)

A set of IAM policy statements to include in the inline policy of the provider's lambda function.

Please note: these are direct IAM JSON policy blobs, not iam.PolicyStatement objects like you will see in the rest of the CDK. Example

const provider = CustomResourceProvider.getOrCreateProvider(this, 'Custom::MyCustomResourceType', {
  codeDirectory: `${__dirname}/my-handler`,
  runtime: CustomResourceProviderRuntime.NODEJS_14_X,
  policyStatements: [
    {
      Effect: 'Allow',
      Action: 's3:PutObject*',
      Resource: '*',
    }
  ],
});

timeout?

Type: Duration (optional, default: Duration.minutes(15))

AWS Lambda timeout for the provider.


useCfnResponseWrapper?

Type: boolean (optional, default: true if inlineCode: false and false otherwise.)

Whether or not the cloudformation response wrapper (nodejs-entrypoint.ts) is used. If set to true, nodejs-entrypoint.js is bundled in the same asset as the custom resource and set as the entrypoint. If set to false, the custom resource provided is the entrypoint.