Skip to content
v2.276.0

FunctionUrlOriginProps Struct ​

Properties for a Lambda Function URL Origin.

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),
    }),
  },
});
python
import aws_cdk.aws_lambda as lambda_

# fn: lambda.Function

fn_url = fn.add_function_url(auth_type=lambda_.FunctionUrlAuthType.NONE)

cloudfront.Distribution(self, "Distribution",
    default_behavior=cloudfront.BehaviorOptions(
        origin=origins.FunctionUrlOrigin(fn_url,
            read_timeout=Duration.seconds(30),
            response_completion_timeout=Duration.seconds(90),
            keepalive_timeout=Duration.seconds(45)
        )
    )
)
java
import software.amazon.awscdk.services.lambda.*;

Function fn;

FunctionUrl fnUrl = fn.addFunctionUrl(FunctionUrlOptions.builder().authType(FunctionUrlAuthType.NONE).build());

Distribution.Builder.create(this, "Distribution")
        .defaultBehavior(BehaviorOptions.builder()
                .origin(FunctionUrlOrigin.Builder.create(fnUrl)
                        .readTimeout(Duration.seconds(30))
                        .responseCompletionTimeout(Duration.seconds(90))
                        .keepaliveTimeout(Duration.seconds(45))
                        .build())
                .build())
        .build();
csharp
// Install: dotnet add package Amazon.CDK.Lib
using Amazon.CDK.AWS.Lambda;

Function fn;

var fnUrl = fn.AddFunctionUrl(new FunctionUrlOptions { AuthType = FunctionUrlAuthType.NONE });

new Distribution(this, "Distribution", new DistributionProps {
    DefaultBehavior = new BehaviorOptions {
        Origin = new FunctionUrlOrigin(fnUrl, new FunctionUrlOriginProps {
            ReadTimeout = Duration.Seconds(30),
            ResponseCompletionTimeout = Duration.Seconds(90),
            KeepaliveTimeout = Duration.Seconds(45)
        })
    }
});
go
// Install: go get github.com/aws/aws-cdk-go/awscdk/v2
import lambda "github.com/aws/aws-cdk-go/awscdk"

var fn Function

fnUrl := fn.AddFunctionUrl(&FunctionUrlOptions{
	AuthType: lambda.FunctionUrlAuthType_NONE,
})

cloudfront.NewDistribution(this, jsii.String("Distribution"), &DistributionProps{
	DefaultBehavior: &BehaviorOptions{
		Origin: origins.NewFunctionUrlOrigin(fnUrl, &FunctionUrlOriginProps{
			ReadTimeout: awscdk.Duration_Seconds(jsii.Number(30)),
			ResponseCompletionTimeout: awscdk.Duration_*Seconds(jsii.Number(90)),
			KeepaliveTimeout: awscdk.Duration_*Seconds(jsii.Number(45)),
		}),
	},
})

Properties ​

connectionAttemptsoptionalnumberconnection_attemptsoptionalint | floatconnectionAttemptsoptionalNumberConnectionAttemptsoptionaldoubleConnectionAttemptsoptional*float64= 3#
The number of times that CloudFront attempts to connect to the origin;

valid values are 1, 2, or 3 attempts.

connectionTimeoutoptionalDurationconnection_timeoutoptionalDurationconnectionTimeoutoptionalDurationConnectionTimeoutoptionalDurationConnectionTimeoutoptionalDuration= 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.

customHeadersoptional{ [key: string]: string }custom_headersoptionaltyping.Mapping[str, str]customHeadersoptionalMap<String, String>CustomHeadersoptionalIDictionary<string, string>CustomHeadersoptional*map[string]*string= {}#
A list of HTTP header names and values that CloudFront adds to requests it sends to the origin.
ipAddressTypeoptionalOriginIpAddressTypeip_address_typeoptionalOriginIpAddressTypeipAddressTypeoptionalOriginIpAddressTypeIpAddressTypeoptionalOriginIpAddressTypeIpAddressTypeoptionalOriginIpAddressType= 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.

keepaliveTimeoutoptionalDurationkeepalive_timeoutoptionalDurationkeepaliveTimeoutoptionalDurationKeepaliveTimeoutoptionalDurationKeepaliveTimeoutoptionalDuration= Duration.seconds(5)#
Specifies how long, in seconds, CloudFront persists its connection to the origin.
notes

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.

originAccessControlIdoptionalstringorigin_access_control_idoptionalstroriginAccessControlIdoptionalStringOriginAccessControlIdoptionalstringOriginAccessControlIdoptional*string#
The unique identifier of an origin access control for this origin.

Default: no origin access control

originIdoptionalstringorigin_idoptionalstroriginIdoptionalStringOriginIdoptionalstringOriginIdoptional*string#
A unique identifier for the origin.

Default: an originid will be generated for you

This value must be unique within the distribution.

originPathoptionalstringorigin_pathoptionalstroriginPathoptionalStringOriginPathoptionalstringOriginPathoptional*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').

originShieldEnabledoptionalbooleanorigin_shield_enabledoptionalbooloriginShieldEnabledoptionalBooleanOriginShieldEnabledoptionalboolOriginShieldEnabledoptional*bool= 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.
originShieldRegionoptionalstringorigin_shield_regionoptionalstroriginShieldRegionoptionalStringOriginShieldRegionoptionalstringOriginShieldRegionoptional*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

readTimeoutoptionalDurationread_timeoutoptionalDurationreadTimeoutoptionalDurationReadTimeoutoptionalDurationReadTimeoutoptionalDuration= Duration.seconds(30)#
Specifies how long, in seconds, CloudFront waits for a response from the origin.
notes

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.

responseCompletionTimeoutoptionalDurationresponse_completion_timeoutoptionalDurationresponseCompletionTimeoutoptionalDurationResponseCompletionTimeoutoptionalDurationResponseCompletionTimeoutoptionalDuration#
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.