Behavior

class aws_cdk.aws_cloudfront.Behavior(*, allowed_methods=None, cached_methods=None, compress=None, default_ttl=None, forwarded_values=None, function_associations=None, is_default_behavior=None, lambda_function_associations=None, max_ttl=None, min_ttl=None, path_pattern=None, trusted_key_groups=None, trusted_signers=None, viewer_protocol_policy=None)

Bases: object

A CloudFront behavior wrapper.

Parameters:
  • allowed_methods (Optional[CloudFrontAllowedMethods]) – The method this CloudFront distribution responds do. Default: GET_HEAD

  • cached_methods (Optional[CloudFrontAllowedCachedMethods]) – Which methods are cached by CloudFront by default. Default: GET_HEAD

  • compress (Optional[bool]) – If CloudFront should automatically compress some content types. Default: true

  • default_ttl (Optional[Duration]) – The default amount of time CloudFront will cache an object. This value applies only when your custom origin does not add HTTP headers, such as Cache-Control max-age, Cache-Control s-maxage, and Expires to objects. Default: 86400 (1 day)

  • forwarded_values (Union[ForwardedValuesProperty, Dict[str, Any], None]) – The values CloudFront will forward to the origin when making a request. Default: none (no cookies - no headers)

  • function_associations (Optional[Sequence[Union[FunctionAssociation, Dict[str, Any]]]]) – The CloudFront functions to invoke before serving the contents. Default: - no functions will be invoked

  • is_default_behavior (Optional[bool]) – If this behavior is the default behavior for the distribution. You must specify exactly one default distribution per CloudFront distribution. The default behavior is allowed to omit the “path” property.

  • lambda_function_associations (Optional[Sequence[Union[LambdaFunctionAssociation, Dict[str, Any]]]]) – Declares associated lambda@edge functions for this distribution behaviour. Default: No lambda function associated

  • max_ttl (Optional[Duration]) – The max amount of time you want objects to stay in the cache before CloudFront queries your origin. Default: Duration.seconds(31536000) (one year)

  • min_ttl (Optional[Duration]) – The minimum amount of time that you want objects to stay in the cache before CloudFront queries your origin.

  • path_pattern (Optional[str]) – The path this behavior responds to. Required for all non-default behaviors. (The default behavior implicitly has “*” as the path pattern. )

  • trusted_key_groups (Optional[Sequence[IKeyGroup]]) – A list of Key Groups that CloudFront can use to validate signed URLs or signed cookies. Default: - no KeyGroups are associated with cache behavior

  • trusted_signers (Optional[Sequence[str]]) – (deprecated) Trusted signers is how CloudFront allows you to serve private content. The signers are the account IDs that are allowed to sign cookies/presigned URLs for this distribution. If you pass a non empty value, all requests for this behavior must be signed (no public access will be allowed)

  • viewer_protocol_policy (Optional[ViewerProtocolPolicy]) – The viewer policy for this behavior. Default: - the distribution wide viewer protocol policy will be used

ExampleMetadata:

fixture=_generated

Example:

# The code below shows an example of how to instantiate this type.
# The values are placeholders you should change.
import aws_cdk as cdk
from aws_cdk import aws_cloudfront as cloudfront
from aws_cdk import aws_lambda as lambda_

# function_: cloudfront.Function
# key_group: cloudfront.KeyGroup
# version: lambda.Version

behavior = cloudfront.Behavior(
    allowed_methods=cloudfront.CloudFrontAllowedMethods.GET_HEAD,
    cached_methods=cloudfront.CloudFrontAllowedCachedMethods.GET_HEAD,
    compress=False,
    default_ttl=cdk.Duration.minutes(30),
    forwarded_values=cloudfront.CfnDistribution.ForwardedValuesProperty(
        query_string=False,

        # the properties below are optional
        cookies=cloudfront.CfnDistribution.CookiesProperty(
            forward="forward",

            # the properties below are optional
            whitelisted_names=["whitelistedNames"]
        ),
        headers=["headers"],
        query_string_cache_keys=["queryStringCacheKeys"]
    ),
    function_associations=[cloudfront.FunctionAssociation(
        event_type=cloudfront.FunctionEventType.VIEWER_REQUEST,
        function=function_
    )],
    is_default_behavior=False,
    lambda_function_associations=[cloudfront.LambdaFunctionAssociation(
        event_type=cloudfront.LambdaEdgeEventType.ORIGIN_REQUEST,
        lambda_function=version,

        # the properties below are optional
        include_body=False
    )],
    max_ttl=cdk.Duration.minutes(30),
    min_ttl=cdk.Duration.minutes(30),
    path_pattern="pathPattern",
    trusted_key_groups=[key_group],
    trusted_signers=["trustedSigners"],
    viewer_protocol_policy=cloudfront.ViewerProtocolPolicy.HTTPS_ONLY
)

Attributes

allowed_methods

The method this CloudFront distribution responds do.

Default:

GET_HEAD

cached_methods

Which methods are cached by CloudFront by default.

Default:

GET_HEAD

compress

If CloudFront should automatically compress some content types.

Default:

true

default_ttl

The default amount of time CloudFront will cache an object.

This value applies only when your custom origin does not add HTTP headers, such as Cache-Control max-age, Cache-Control s-maxage, and Expires to objects.

Default:

86400 (1 day)

forwarded_values

The values CloudFront will forward to the origin when making a request.

Default:

none (no cookies - no headers)

function_associations

The CloudFront functions to invoke before serving the contents.

Default:
  • no functions will be invoked

is_default_behavior

If this behavior is the default behavior for the distribution.

You must specify exactly one default distribution per CloudFront distribution. The default behavior is allowed to omit the “path” property.

lambda_function_associations

Declares associated lambda@edge functions for this distribution behaviour.

Default:

No lambda function associated

max_ttl

The max amount of time you want objects to stay in the cache before CloudFront queries your origin.

Default:

Duration.seconds(31536000) (one year)

min_ttl

The minimum amount of time that you want objects to stay in the cache before CloudFront queries your origin.

path_pattern

The path this behavior responds to.

Required for all non-default behaviors. (The default behavior implicitly has “*” as the path pattern. )

trusted_key_groups

A list of Key Groups that CloudFront can use to validate signed URLs or signed cookies.

Default:
  • no KeyGroups are associated with cache behavior

See:

https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html

trusted_signers

(deprecated) Trusted signers is how CloudFront allows you to serve private content.

The signers are the account IDs that are allowed to sign cookies/presigned URLs for this distribution.

If you pass a non empty value, all requests for this behavior must be signed (no public access will be allowed)

Deprecated:
  • We recommend using trustedKeyGroups instead of trustedSigners.

Stability:

deprecated

viewer_protocol_policy

The viewer policy for this behavior.

Default:
  • the distribution wide viewer protocol policy will be used