Skip to content
v2.275.0

BehaviorOptions Struct ​

Options for creating a new behavior.

Example ​

ts
// Creates a distribution from a Network Load Balancer
declare const vpc: ec2.Vpc;
// Create a network load balancer in a VPC. 'internetFacing' can be 'false'.
const nlb = new elbv2.NetworkLoadBalancer(this, 'NLB', {
  vpc,
  internetFacing: false,
  vpcSubnets: { subnetType: ec2.SubnetType.PRIVATE_ISOLATED },
  securityGroups: [new ec2.SecurityGroup(this, 'NLB-SG', { vpc })],
});
new cloudfront.Distribution(this, 'myDist', {
  defaultBehavior: { origin: origins.VpcOrigin.withNetworkLoadBalancer(nlb) },
});

Properties ​

allowedMethodsoptionalAllowedMethodsallowed_methodsoptionalAllowedMethodsallowedMethodsoptionalAllowedMethodsAllowedMethodsoptionalAllowedMethodsAllowedMethodsoptionalAllowedMethods= AllowedMethods.ALLOW_GET_HEAD#
HTTP methods to allow for this behavior.
cachedMethodsoptionalCachedMethodscached_methodsoptionalCachedMethodscachedMethodsoptionalCachedMethodsCachedMethodsoptionalCachedMethodsCachedMethodsoptionalCachedMethods= CachedMethods.CACHE_GET_HEAD#
HTTP methods to cache for this behavior.
cachePolicyoptionalICachePolicyRefcache_policyoptionalICachePolicyRefcachePolicyoptionalICachePolicyRefCachePolicyoptionalICachePolicyRefCachePolicyoptionalICachePolicyRef= CachePolicy.CACHING_OPTIMIZED#
The cache policy for this behavior.

The cache policy determines what values are included in the cache key, and the time-to-live (TTL) values for the cache.

compressoptionalbooleancompressoptionalboolcompressoptionalBooleanCompressoptionalboolCompressoptional*bool= true#
Whether you want CloudFront to automatically compress certain files for this cache behavior.
edgeLambdasoptionalEdgeLambda[]edge_lambdasoptionaltyping.List[EdgeLambda]edgeLambdasoptionalList<EdgeLambda>EdgeLambdasoptionalEdgeLambda[]EdgeLambdasoptional*[]EdgeLambda#
The Lambda@Edge functions to invoke before serving the contents.

Default: no Lambda functions will be invoked

enableGrpcoptionalbooleanenable_grpcoptionalboolenableGrpcoptionalBooleanEnableGrpcoptionalboolEnableGrpcoptional*bool= false#
Enables your CloudFront distribution to receive gRPC requests and to proxy them directly to your origins.
notes

If the enableGrpc is set to true, the following restrictions apply:

  • The allowedMethods property must be AllowedMethods.ALLOW_ALL to include POST method because gRPC only supports POST method.
  • The httpVersion property must be HttpVersion.HTTP2 or HttpVersion.HTTP2_AND_3 because gRPC only supports versions including HTTP/2.
  • The edgeLambdas property can't be specified because gRPC is not supported with Lambda@Edge.
functionAssociationsoptionalFunctionAssociation[]function_associationsoptionaltyping.List[FunctionAssociation]functionAssociationsoptionalList<FunctionAssociation>FunctionAssociationsoptionalFunctionAssociation[]FunctionAssociationsoptional*[]FunctionAssociation#
The CloudFront functions to invoke before serving the contents.

Default: no functions will be invoked

originIOriginoriginIOriginoriginIOriginOriginIOriginOriginIOriginrequired#
The origin that you want CloudFront to route requests to when they match this behavior.
originRequestPolicyoptionalIOriginRequestPolicyReforigin_request_policyoptionalIOriginRequestPolicyReforiginRequestPolicyoptionalIOriginRequestPolicyRefOriginRequestPolicyoptionalIOriginRequestPolicyRefOriginRequestPolicyoptionalIOriginRequestPolicyRef= none#
The origin request policy for this behavior.

The origin request policy determines which values (e.g., headers, cookies) are included in requests that CloudFront sends to the origin.

realtimeLogConfigoptionalIRealtimeLogConfigRefrealtime_log_configoptionalIRealtimeLogConfigRefrealtimeLogConfigoptionalIRealtimeLogConfigRefRealtimeLogConfigoptionalIRealtimeLogConfigRefRealtimeLogConfigoptionalIRealtimeLogConfigRef= none#
The real-time log configuration to be attached to this cache behavior.
responseHeadersPolicyoptionalIResponseHeadersPolicyRefresponse_headers_policyoptionalIResponseHeadersPolicyRefresponseHeadersPolicyoptionalIResponseHeadersPolicyRefResponseHeadersPolicyoptionalIResponseHeadersPolicyRefResponseHeadersPolicyoptionalIResponseHeadersPolicyRef= none#
The response headers policy for this behavior.

The response headers policy determines which headers are included in responses

smoothStreamingoptionalbooleansmooth_streamingoptionalboolsmoothStreamingoptionalBooleanSmoothStreamingoptionalboolSmoothStreamingoptional*bool= false#
Set this to true to indicate you want to distribute media files in the Microsoft Smooth Streaming format using this behavior.
trustedKeyGroupsoptionalIKeyGroupRef[]trusted_key_groupsoptionaltyping.List[IKeyGroupRef]trustedKeyGroupsoptionalList<IKeyGroupRef>TrustedKeyGroupsoptionalIKeyGroupRef[]TrustedKeyGroupsoptional*[]IKeyGroupRef#
A list of Key Groups that CloudFront can use to validate signed URLs or signed cookies.

Default: no KeyGroups are associated with cache behavior

viewerProtocolPolicyoptionalViewerProtocolPolicyviewer_protocol_policyoptionalViewerProtocolPolicyviewerProtocolPolicyoptionalViewerProtocolPolicyViewerProtocolPolicyoptionalViewerProtocolPolicyViewerProtocolPolicyoptionalViewerProtocolPolicy#
The protocol that viewers can use to access the files controlled by this behavior.

Default: ViewerProtocolPolicy.REDIRECT_TO_HTTPS if the @aws-cdk/aws-cloudfront:defaultViewerProtocolPolicyRedirectToHttps feature flag is enabled, otherwise ViewerProtocolPolicy.ALLOW_ALL