CustomResourceProviderProps

class aws_cdk.core.CustomResourceProviderProps(*, code_directory, runtime, description=None, environment=None, memory_size=None, policy_statements=None, timeout=None)

Bases: object

Initialization properties for CustomResourceProvider.

Parameters:
  • code_directory (str) – 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 (CustomResourceProviderRuntime) – The AWS Lambda runtime and version to use for the provider.

  • description (Optional[str]) – A description of the function. Default: - No description.

  • environment (Optional[Mapping[str, str]]) – Key-value pairs that are passed to Lambda as Environment. Default: - No environment variables.

  • memory_size (Optional[Size]) – The amount of memory that your function has access to. Increasing the function’s memory also increases its CPU allocation. Default: Size.mebibytes(128)

  • policy_statements (Optional[Sequence[Any]]) – 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. Default: - no additional inline policy

  • timeout (Optional[Duration]) – AWS Lambda timeout for the provider. Default: Duration.minutes(15)

ExampleMetadata:

infused

Example:

service_token = CustomResourceProvider.get_or_create(self, "Custom::MyCustomResourceType",
    code_directory=f"{__dirname}/my-handler",
    runtime=CustomResourceProviderRuntime.NODEJS_14_X,
    description="Lambda function created by the custom resource provider"
)

CustomResource(self, "MyResource",
    resource_type="Custom::MyCustomResourceType",
    service_token=service_token
)

Attributes

code_directory

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.

description

A description of the function.

Default:
  • No description.

environment

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

Default:
  • No environment variables.

memory_size

The amount of memory that your function has access to.

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

Default:

Size.mebibytes(128)

policy_statements

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.

Default:
  • no additional inline policy

Example:

provider = CustomResourceProvider.get_or_create_provider(self, "Custom::MyCustomResourceType",
    code_directory=f"{__dirname}/my-handler",
    runtime=CustomResourceProviderRuntime.NODEJS_14_X,
    policy_statements=[{
        "Effect": "Allow",
        "Action": "s3:PutObject*",
        "Resource": "*"
    }
    ]
)
runtime

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

timeout

AWS Lambda timeout for the provider.

Default:

Duration.minutes(15)