File tree Expand file tree Collapse file tree 4 files changed +29
-0
lines changed Expand file tree Collapse file tree 4 files changed +29
-0
lines changed Original file line number Diff line number Diff line change @@ -26,6 +26,7 @@ Terraform module to host a static site generated by Publii
2626| ------| ------|
2727| [ aws_cloudfront_distribution.frontend] ( https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/cloudfront_distribution ) | resource |
2828| [ aws_cloudfront_distribution.frontend_www_redirect] ( https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/cloudfront_distribution ) | resource |
29+ | [ aws_cloudfront_function.frontend_viewer_request] ( https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/cloudfront_function ) | resource |
2930| [ aws_cloudfront_origin_access_identity.frontend] ( https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/cloudfront_origin_access_identity ) | resource |
3031| [ aws_cloudfront_origin_access_identity.frontend_www_redirect] ( https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/cloudfront_origin_access_identity ) | resource |
3132| [ aws_iam_policy.publii_s3_frontend] ( https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_policy ) | resource |
@@ -58,6 +59,7 @@ Terraform module to host a static site generated by Publii
5859| [ aws_s3_bucket_website_configuration.frontend_www_redirect] ( https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/s3_bucket_website_configuration ) | resource |
5960| [ aws_wafv2_web_acl.cloudfront_waf] ( https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/wafv2_web_acl ) | resource |
6061| [ random_id.project] ( https://registry.terraform.io/providers/hashicorp/random/latest/docs/resources/id ) | resource |
62+ | [ template_file.cloudfront_frontend_viewer_request_function] ( https://registry.terraform.io/providers/hashicorp/template/latest/docs/data-sources/file ) | data source |
6163| [ template_file.frontend_bucket_cloudfront_read] ( https://registry.terraform.io/providers/hashicorp/template/latest/docs/data-sources/file ) | data source |
6264| [ template_file.frontend_bucket_enforce_tls_statement] ( https://registry.terraform.io/providers/hashicorp/template/latest/docs/data-sources/file ) | data source |
6365| [ template_file.frontend_bucket_policy] ( https://registry.terraform.io/providers/hashicorp/template/latest/docs/data-sources/file ) | data source |
Original file line number Diff line number Diff line change 1+ data "template_file" "cloudfront_frontend_viewer_request_function" {
2+ template = file (" ${ path . module } /cloudfront-functions/viewer-request.js" )
3+ }
4+
5+ resource "aws_cloudfront_function" "frontend_viewer_request" {
6+ name = " frontend-viewer-request"
7+ runtime = " cloudfront-js-1.0"
8+ comment = " frontend viewer-request function"
9+ publish = true
10+ code = data. template_file . cloudfront_frontend_viewer_request_function . rendered
11+ }
Original file line number Diff line number Diff line change @@ -38,6 +38,11 @@ resource "aws_cloudfront_distribution" "frontend" {
3838 compress = true
3939
4040 viewer_protocol_policy = " redirect-to-https"
41+
42+ function_association {
43+ event_type = " viewer-request"
44+ function_arn = aws_cloudfront_function. frontend_viewer_request . arn
45+ }
4146 }
4247
4348 default_root_object = " index.html"
Original file line number Diff line number Diff line change 1+ function handler ( event ) {
2+ // default variables
3+ var req = event . request ;
4+ var clientIp = event . viewer . ip ;
5+
6+ // set true-client-ip header
7+ req . headers [ 'true-client-ip' ] = { value : clientIp } ;
8+
9+ // return request
10+ return req ;
11+ }
You can’t perform that action at this time.
0 commit comments