diff --git a/infrastructure/terraform/modules/cloudfront/main.tf b/infrastructure/terraform/modules/cloudfront/main.tf index 1b68b891..11f086fd 100644 --- a/infrastructure/terraform/modules/cloudfront/main.tf +++ b/infrastructure/terraform/modules/cloudfront/main.tf @@ -1,3 +1,41 @@ +resource "aws_cloudfront_cache_policy" "api" { + name = "api-no-cache" + + default_ttl = 0 + max_ttl = 0 + min_ttl = 0 + + parameters_in_cache_key_and_forwarded_to_origin { + cookies_config { + cookie_behavior = "none" + } + + headers_config { + header_behavior = "none" + } + + query_strings_config { + query_string_behavior = "all" + } + } +} + +resource "aws_cloudfront_origin_request_policy" "api" { + name = "api-forward-all" + + headers_config { + header_behavior = "allViewer" + } + + query_strings_config { + query_string_behavior = "all" + } + + cookies_config { + cookie_behavior = "all" + } +} + ############################################ # CloudFront Distribution ############################################ @@ -81,21 +119,11 @@ resource "aws_cloudfront_distribution" "this" { viewer_protocol_policy = "redirect-to-https" - allowed_methods = [ - "GET","HEAD","OPTIONS", - "PUT","POST","PATCH","DELETE" - ] + allowed_methods = ["GET","HEAD","OPTIONS","PUT","POST","PATCH","DELETE"] + cached_methods = ["GET","HEAD"] - cached_methods = ["GET","HEAD"] - - forwarded_values { - query_string = true - headers = ["*"] - - cookies { - forward = "all" - } - } + cache_policy_id = aws_cloudfront_cache_policy.api.id + origin_request_policy_id = aws_cloudfront_origin_request_policy.api.id min_ttl = 0 default_ttl = 0