# FunctionUrlOriginProps

Properties for a Lambda Function URL Origin.

Extends: FunctionUrlOriginProps
Extends: OriginProps
Used as props by: FunctionUrlOrigin

- Source: [`aws-cloudfront-origins/lib/function-url-origin.ts`](https://github.com/aws/aws-cdk/blob/v2.275.0/packages/aws-cdk-lib/aws-cloudfront-origins/lib/function-url-origin.ts#L12)
- Type last changed: v2.220.0 · 14 Oct 2025

## Example

```ts
import * as lambda from 'aws-cdk-lib/aws-lambda';

declare const fn: lambda.Function;
const fnUrl = fn.addFunctionUrl({ authType: lambda.FunctionUrlAuthType.NONE });

new cloudfront.Distribution(this, 'Distribution', {
  defaultBehavior: {
    origin: new origins.FunctionUrlOrigin(fnUrl, {
      readTimeout: Duration.seconds(30),
      responseCompletionTimeout: Duration.seconds(90),
      keepaliveTimeout: Duration.seconds(45),
    }),
  },
});
```

## Properties

- `connectionAttempts`: number = 3 — The number of times that CloudFront attempts to connect to the origin;

  valid values are 1, 2, or 3 attempts.

- `connectionTimeout`: [Duration](/cdk/api/v2/docs/aws-cdk-lib.Duration.html) = Duration.seconds(10) — The number of seconds that CloudFront waits when trying to establish a connection to the origin.

  Valid values are 1-10 seconds, inclusive.

- `customHeaders`: { [key: string]: string } = {} — A list of HTTP header names and values that CloudFront adds to requests it sends to the origin.

- `ipAddressType`: [OriginIpAddressType](/cdk/api/v2/docs/aws-cdk-lib.aws_cloudfront.OriginIpAddressType.html) = OriginIpAddressType.IPV4 — Specifies which IP protocol CloudFront uses when connecting to your origin.

  If your origin uses both IPv4 and IPv6 protocols, you can choose dualstack to help optimize reliability.

- `keepaliveTimeout`: [Duration](/cdk/api/v2/docs/aws-cdk-lib.Duration.html) = Duration.seconds(5) — Specifies how long, in seconds, CloudFront persists its connection to the origin.

  The minimum is 1 second. The maximum is governed by the keep-alive timeout per origin quota,
  which is adjustable, so the effective maximum depends on the target account.

  The default quota allows up to 300 seconds; higher values require an approved limit increase
  in the target account, and otherwise produce an error at deploy time.

- `originAccessControlId`: string — The unique identifier of an origin access control for this origin.

  **Default:** no origin access control

- `originId`: string — A unique identifier for the origin.

  **Default:** an originid will be generated for you

  This value must be unique within the distribution.

- `originPath`: string = '/' — An optional path that CloudFront appends to the origin domain name when CloudFront requests content from the origin.

  Must begin, but not end, with '/' (e.g., '/production/images').

- `originShieldEnabled`: boolean = true — Origin Shield is enabled by setting originShieldRegion to a valid region, after this to disable Origin Shield again you must set this flag to false.

- `originShieldRegion`: string — When you enable Origin Shield in the AWS Region that has the lowest latency to your origin, you can get better network performance.

  **Default:** origin shield not enabled

- `readTimeout`: [Duration](/cdk/api/v2/docs/aws-cdk-lib.Duration.html) = Duration.seconds(30) — Specifies how long, in seconds, CloudFront waits for a response from the origin.

  The minimum is 1 second. The maximum is governed by the origin response timeout quota, which is
  adjustable, so the effective maximum depends on the target account.

  The default quota allows up to 120 seconds; higher values require an approved limit increase
  in the target account, and otherwise produce an error at deploy time.

- `responseCompletionTimeout`: [Duration](/cdk/api/v2/docs/aws-cdk-lib.Duration.html) — The time that a request from CloudFront to the origin can stay open and wait for a response.

  **Default:** undefined - AWS CloudFront default is not enforcing a maximum value

  If the complete response isn't received from the origin by this time, CloudFront ends the connection.

  Valid values are 1-3600 seconds, inclusive.
