Difference between revisions of "Template:Official aws cloudfront distribution example"
Jump to navigation
Jump to search
Line 16: | Line 16: | ||
s3_origin_id = "myS3Origin" | s3_origin_id = "myS3Origin" | ||
} | } | ||
+ | |||
+ | resource "aws_cloudfront_distribution" "s3_distribution" { | ||
+ | origin { | ||
+ | domain_name = aws_s3_bucket.b.bucket_regional_domain_name | ||
+ | origin_access_control_id = aws_cloudfront_origin_access_control.default.id | ||
+ | origin_id = local.s3_origin_id | ||
+ | } | ||
+ | |||
+ | enabled = true | ||
+ | is_ipv6_enabled = true | ||
+ | comment = "Some comment" | ||
+ | default_root_object = "index.html" | ||
+ | |||
+ | logging_config { | ||
+ | include_cookies = false | ||
+ | bucket = "mylogs.s3.amazonaws.com" | ||
+ | prefix = "myprefix" | ||
+ | } | ||
+ | |||
+ | aliases = ["mysite.example.com", "yoursite.example.com"] | ||
+ | |||
+ | default_cache_behavior { | ||
+ | allowed_methods = ["DELETE", "GET", "HEAD", "OPTIONS", "PATCH", "POST", "PUT"] | ||
+ | cached_methods = ["GET", "HEAD"] | ||
+ | target_origin_id = local.s3_origin_id | ||
+ | |||
+ | forwarded_values { | ||
+ | query_string = false | ||
+ | |||
+ | cookies { | ||
+ | forward = "none" | ||
+ | } | ||
+ | } | ||
+ | |||
+ | viewer_protocol_policy = "allow-all" | ||
+ | min_ttl = 0 | ||
+ | default_ttl = 3600 | ||
+ | max_ttl = 86400 | ||
+ | } | ||
<pre> | <pre> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
# Cache behavior with precedence 0 | # Cache behavior with precedence 0 | ||
ordered_cache_behavior { | ordered_cache_behavior { |
Revision as of 14:11, 8 June 2023
resource "aws_s3_bucket" "b" { bucket = "mybucket" tags = { Name = "My bucket" } } resource "aws_s3_bucket_acl" "b_acl" { bucket = aws_s3_bucket.b.id acl = "private" } locals { s3_origin_id = "myS3Origin" } resource "aws_cloudfront_distribution" "s3_distribution" { origin { domain_name = aws_s3_bucket.b.bucket_regional_domain_name origin_access_control_id = aws_cloudfront_origin_access_control.default.id origin_id = local.s3_origin_id } enabled = true is_ipv6_enabled = true comment = "Some comment" default_root_object = "index.html" logging_config { include_cookies = false bucket = "mylogs.s3.amazonaws.com" prefix = "myprefix" } aliases = ["mysite.example.com", "yoursite.example.com"] default_cache_behavior { allowed_methods = ["DELETE", "GET", "HEAD", "OPTIONS", "PATCH", "POST", "PUT"] cached_methods = ["GET", "HEAD"] target_origin_id = local.s3_origin_id forwarded_values { query_string = false cookies { forward = "none" } } viewer_protocol_policy = "allow-all" min_ttl = 0 default_ttl = 3600 max_ttl = 86400 }
# Cache behavior with precedence 0 ordered_cache_behavior { path_pattern = "/content/immutable/*" allowed_methods = ["GET", "HEAD", "OPTIONS"] cached_methods = ["GET", "HEAD", "OPTIONS"] target_origin_id = local.s3_origin_id forwarded_values { query_string = false headers = ["Origin"] cookies { forward = "none" } } min_ttl = 0 default_ttl = 86400 max_ttl = 31536000 compress = true viewer_protocol_policy = "redirect-to-https" } # Cache behavior with precedence 1 ordered_cache_behavior { path_pattern = "/content/*" allowed_methods = ["GET", "HEAD", "OPTIONS"] cached_methods = ["GET", "HEAD"] target_origin_id = local.s3_origin_id forwarded_values { query_string = false cookies { forward = "none" } } min_ttl = 0 default_ttl = 3600 max_ttl = 86400 compress = true viewer_protocol_policy = "redirect-to-https" } price_class = "PriceClass_200" restrictions { geo_restriction { restriction_type = "whitelist" locations = ["US", "CA", "GB", "DE"] } } tags = { Environment = "production" } viewer_certificate { cloudfront_default_certificate = true } }
Advertising: