Distribution

class aws_cdk.aws_cloudfront.Distribution(scope, id, *, default_behavior, additional_behaviors=None, certificate=None, comment=None, default_root_object=None, domain_names=None, enabled=None, enable_ipv6=None, enable_logging=None, error_responses=None, geo_restriction=None, http_version=None, log_bucket=None, log_file_prefix=None, log_includes_cookies=None, price_class=None, web_acl_id=None)

Bases: aws_cdk.core.Resource

A CloudFront distribution with associated origin(s) and caching behavior(s).

stability :stability: experimental

__init__(scope, id, *, default_behavior, additional_behaviors=None, certificate=None, comment=None, default_root_object=None, domain_names=None, enabled=None, enable_ipv6=None, enable_logging=None, error_responses=None, geo_restriction=None, http_version=None, log_bucket=None, log_file_prefix=None, log_includes_cookies=None, price_class=None, web_acl_id=None)
Parameters
  • scope (Construct) –

  • id (str) –

  • default_behavior (BehaviorOptions) – The default behavior for the distribution.

  • additional_behaviors (Optional[Mapping[str, BehaviorOptions]]) – Additional behaviors for the distribution, mapped by the pathPattern that specifies which requests to apply the behavior to. Default: - no additional behaviors are added.

  • certificate (Optional[ICertificate]) – A certificate to associate with the distribution. The certificate must be located in N. Virginia (us-east-1). Default: - the CloudFront wildcard certificate (*.cloudfront.net) will be used.

  • comment (Optional[str]) – Any comments you want to include about the distribution. Default: - no comment

  • default_root_object (Optional[str]) – The object that you want CloudFront to request from your origin (for example, index.html) when a viewer requests the root URL for your distribution. If no default object is set, the request goes to the origin’s root (e.g., example.com/). Default: - no default root object

  • domain_names (Optional[List[str]]) – Alternative domain names for this distribution. If you want to use your own domain name, such as www.example.com, instead of the cloudfront.net domain name, you can add an alternate domain name to your distribution. If you attach a certificate to the distribution, you must add (at least one of) the domain names of the certificate to this list. Default: - The distribution will only support the default generated name (e.g., d111111abcdef8.cloudfront.net)

  • enabled (Optional[bool]) – Enable or disable the distribution. Default: true

  • enable_ipv6 (Optional[bool]) – Whether CloudFront will respond to IPv6 DNS requests with an IPv6 address. If you specify false, CloudFront responds to IPv6 DNS requests with the DNS response code NOERROR and with no IP addresses. This allows viewers to submit a second request, for an IPv4 address for your distribution. Default: true

  • enable_logging (Optional[bool]) – Enable access logging for the distribution. Default: - false, unless logBucket is specified.

  • error_responses (Optional[List[ErrorResponse]]) – How CloudFront should handle requests that are not successful (e.g., PageNotFound). Default: - No custom error responses.

  • geo_restriction (Optional[GeoRestriction]) – Controls the countries in which your content is distributed. Default: - No geographic restrictions

  • http_version (Optional[HttpVersion]) – Specify the maximum HTTP version that you want viewers to use to communicate with CloudFront. For viewers and CloudFront to use HTTP/2, viewers must support TLS 1.2 or later, and must support server name identification (SNI). Default: HttpVersion.HTTP2

  • log_bucket (Optional[IBucket]) – The Amazon S3 bucket to store the access logs in. Default: - A bucket is created if enableLogging is true

  • log_file_prefix (Optional[str]) – An optional string that you want CloudFront to prefix to the access log filenames for this distribution. Default: - no prefix

  • log_includes_cookies (Optional[bool]) – Specifies whether you want CloudFront to include cookies in access logs. Default: false

  • price_class (Optional[PriceClass]) – The price class that corresponds with the maximum price that you want to pay for CloudFront service. If you specify PriceClass_All, CloudFront responds to requests for your objects from all CloudFront edge locations. If you specify a price class other than PriceClass_All, CloudFront serves your objects from the CloudFront edge location that has the lowest latency among the edge locations in your price class. Default: PriceClass.PRICE_CLASS_ALL

  • web_acl_id (Optional[str]) – Unique identifier that specifies the AWS WAF web ACL to associate with this CloudFront distribution. To specify a web ACL created using the latest version of AWS WAF, use the ACL ARN, for example arn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a. To specify a web ACL created using AWS WAF Classic, use the ACL ID, for example 473e64fd-f30b-4765-81a0-62ad96dd167a. Default: - No AWS Web Application Firewall web access control list (web ACL).

stability :stability: experimental

Return type

None

Methods

add_behavior(path_pattern, origin, *, allowed_methods=None, cached_methods=None, compress=None, edge_lambdas=None, forward_query_string=None, forward_query_string_cache_keys=None, smooth_streaming=None, viewer_protocol_policy=None)

Adds a new behavior to this distribution for the given pathPattern.

Parameters
  • path_pattern (str) – the path pattern (e.g., ‘images/*’) that specifies which requests to apply the behavior to.

  • origin (IOrigin) – the origin to use for this behavior.

  • allowed_methods (Optional[AllowedMethods]) – HTTP methods to allow for this behavior. Default: AllowedMethods.ALLOW_GET_HEAD

  • cached_methods (Optional[CachedMethods]) – HTTP methods to cache for this behavior. Default: CachedMethods.CACHE_GET_HEAD

  • compress (Optional[bool]) – Whether you want CloudFront to automatically compress certain files for this cache behavior. See https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/ServingCompressedFiles.html#compressed-content-cloudfront-file-types for file types CloudFront will compress. Default: false

  • edge_lambdas (Optional[List[EdgeLambda]]) – The Lambda@Edge functions to invoke before serving the contents. Default: - no Lambda functions will be invoked

  • forward_query_string (Optional[bool]) – Whether CloudFront will forward query strings to the origin. If this is set to true, CloudFront will forward all query parameters to the origin, and cache based on all parameters. See forwardQueryStringCacheKeys for a way to limit the query parameters CloudFront caches on. Default: false

  • forward_query_string_cache_keys (Optional[List[str]]) – A set of query string parameter names to use for caching if forwardQueryString is set to true. Default: []

  • smooth_streaming (Optional[bool]) – Set this to true to indicate you want to distribute media files in the Microsoft Smooth Streaming format using this behavior. Default: false

  • viewer_protocol_policy (Optional[ViewerProtocolPolicy]) – The protocol that viewers can use to access the files controlled by this behavior. Default: ViewerProtocolPolicy.ALLOW_ALL

stability :stability: experimental

Return type

None

to_string()

Returns a string representation of this construct.

Return type

str

Attributes

distribution_domain_name

The domain name of the Distribution, such as d111111abcdef8.cloudfront.net.

stability :stability: experimental

Return type

str

distribution_id

The distribution ID for this distribution.

stability :stability: experimental

Return type

str

domain_name

The domain name of the Distribution, such as d111111abcdef8.cloudfront.net.

stability :stability: experimental

Return type

str

env

The environment this resource belongs to.

For resources that are created and managed by the CDK (generally, those created by creating new class instances like Role, Bucket, etc.), this is always the same as the environment of the stack they belong to; however, for imported resources (those obtained from static methods like fromRoleArn, fromBucketName, etc.), that might be different than the stack they were imported into.

Return type

ResourceEnvironment

node

The construct tree node associated with this construct.

Return type

ConstructNode

stack

The stack in which this resource is defined.

Return type

Stack

Static Methods

classmethod from_distribution_attributes(scope, id, *, distribution_id, domain_name)

Creates a Distribution construct that represents an external (imported) distribution.

Parameters
  • scope (Construct) –

  • id (str) –

  • distribution_id (str) – The distribution ID for this distribution.

  • domain_name (str) – The generated domain name of the Distribution, such as d111111abcdef8.cloudfront.net.

stability :stability: experimental

Return type

IDistribution

classmethod is_construct(x)

Return whether the given object is a Construct.

Parameters

x (Any) –

Return type

bool