# FunctionProps

Properties for creating a CloudFront Function.

Extends: FunctionProps
Used as props by: Function

- Source: [`aws-cloudfront/lib/function.ts`](https://github.com/aws/aws-cdk/blob/v2.275.0/packages/aws-cdk-lib/aws-cloudfront/lib/function.ts#L118)
- Type last changed: v2.275.0 · 26 Oct 2026

## Example

```ts
const store = new cloudfront.KeyValueStore(this, 'KeyValueStore');
new cloudfront.Function(this, 'Function', {
  code: cloudfront.FunctionCode.fromInline('function handler(event) { return event.request }'),
  // Note that JS_2_0 must be used for Key Value Store support
  runtime: cloudfront.FunctionRuntime.JS_2_0,
  keyValueStore: store,
});
```

## Properties

- `autoPublish`: boolean = true — A flag that determines whether to automatically publish the function to the LIVE stage when it’s created.

- `code`: [FunctionCode](/cdk/api/v2/docs/aws-cdk-lib.aws_cloudfront.FunctionCode.html) (required) — The source code of the function.

- `comment`: string — A comment to describe the function.

  **Default:** same as `functionName`

- `functionName`: string — A name to identify the function.

  **Default:** generated from the `id`

- `keyValueStore`: [IKeyValueStoreRef](/cdk/api/v2/docs/aws-cdk-lib.interfaces.aws_cloudfront.IKeyValueStoreRef.html) — The Key Value Store to associate with this function.

  **Default:** no key value store is associated

  In order to associate a Key Value Store, the `runtime` must be
  `cloudfront-js-2.0` or newer.

- `runtime`: [FunctionRuntime](/cdk/api/v2/docs/aws-cdk-lib.aws_cloudfront.FunctionRuntime.html) — The runtime environment for the function.

  **Default:** FunctionRuntime.JS_2_0 if `keyValueStore` is specified or the `@aws-cdk/aws-cloudfront:defaultFunctionRuntimeV2_0` feature flag is enabled; otherwise, FunctionRuntime.JS_1_0.
