FunctionUrlOriginProps Struct
Properties for a Lambda Function URL Origin.
Example
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),
}),
},
});
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)
)
)
)
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();
// 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)
})
}
});
// 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#valid values are 1, 2, or 3 attempts.
connectionTimeoutoptionalDurationconnection_timeoutoptionalDurationconnectionTimeoutoptionalDurationConnectionTimeoutoptionalDurationConnectionTimeoutoptionalDuration= Duration.seconds(10)#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= {}#ipAddressTypeoptionalOriginIpAddressTypeip_address_typeoptionalOriginIpAddressTypeipAddressTypeoptionalOriginIpAddressTypeIpAddressTypeoptionalOriginIpAddressTypeIpAddressTypeoptionalOriginIpAddressType= OriginIpAddressType.IPV4#If your origin uses both IPv4 and IPv6 protocols, you can choose dualstack to help optimize reliability.
keepaliveTimeoutoptionalDurationkeepalive_timeoutoptionalDurationkeepaliveTimeoutoptionalDurationKeepaliveTimeoutoptionalDurationKeepaliveTimeoutoptionalDuration= Duration.seconds(5)#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#Default: no origin access control
originIdoptionalstringorigin_idoptionalstroriginIdoptionalStringOriginIdoptionalstringOriginIdoptional*string#Default: an originid will be generated for you
This value must be unique within the distribution.
originPathoptionalstringorigin_pathoptionalstroriginPathoptionalStringOriginPathoptionalstringOriginPathoptional*string= '/'#Must begin, but not end, with '/' (e.g., '/production/images').
originShieldEnabledoptionalbooleanorigin_shield_enabledoptionalbooloriginShieldEnabledoptionalBooleanOriginShieldEnabledoptionalboolOriginShieldEnabledoptional*bool= true#originShieldRegionoptionalstringorigin_shield_regionoptionalstroriginShieldRegionoptionalStringOriginShieldRegionoptionalstringOriginShieldRegionoptional*string#Default: origin shield not enabled
readTimeoutoptionalDurationread_timeoutoptionalDurationreadTimeoutoptionalDurationReadTimeoutoptionalDurationReadTimeoutoptionalDuration= Duration.seconds(30)#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#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.