Amplify vs S3: Why is this behaviour different?

0

HI All, I'm still very much a novice with AWS and I'm following this tutorial to learn more Build a Serverless Web Application. In my own test account I've followed this tutorial without issue. I'm currently trying to apply the same tutorial in a restricted environment where I don't have access to Amplify. I figured I could get away with swapping Amplify in this tutorial S3, however I'm getting some odd behaviour.

I'm using this github repo website for both. I'm creating the bucket and uploading the files via TF.

resource "aws_s3_bucket" "mrw-example-bucket" {
  bucket = "mrw-example"

  tags = {
    Name = "mrw-example"
  }
}
resource "aws_s3_bucket_acl" "mrw-example-bucket-acl" {
  bucket = aws_s3_bucket.mrw-example-bucket.id
  acl    = "public-read"
}

resource "aws_s3_bucket_website_configuration" "mrw-example-bucket-website-config" {
  bucket = aws_s3_bucket.mrw-example-bucket.id

  index_document {
    suffix = "index.html"
  }

  error_document {
    key = "error.html"
  }
}

resource "aws_s3_bucket_public_access_block" "mrw-example-bucket-pab" {
  bucket = aws_s3_bucket.mrw-example-bucket.id

  block_public_acls   = false
  block_public_policy = false
}

resource "aws_s3_bucket_policy" "mrw-example-bucket-policy" {
  bucket = aws_s3_bucket.mrw-example-bucket.id
  policy = file("policy.json")
}

resource "aws_s3_bucket_cors_configuration" "mrw-example-cors-config" {
  bucket = aws_s3_bucket.mrw-example-bucket.id

  cors_rule {
    allowed_headers = ["*"]
    allowed_methods = ["PUT", "POST", "GET"]
    allowed_origins = ["*"]
    max_age_seconds = 3000
  }
}

###WEBSITE FILES###
locals {
  content_type_map = {
    html        = "text/html",
    js          = "application/javascript",
    css         = "text/css",
    svg         = "image/svg+xml",
    jpg         = "image/jpeg",
    ico         = "image/x-icon",
    png         = "image/png",
    gif         = "image/gif",
    pdf         = "application/pdf"
  }
}

resource "aws_s3_object" "mrw-example-bucket-objects" {
  for_each = fileset("website/", "**/*.*")
  bucket   = aws_s3_bucket.mrw-example-bucket.id
  key      = each.value
  source   = "website/${each.value}"
  etag     = filemd5("website/${each.value}")
  content_type  = lookup(local.content_type_map, regex("\\.(?P<extension>[A-Za-z0-9]+)$", each.value).extension, "application/octet-stream")
}

My question to you all, is why is the behaviour different? It feels like I've missed something obvious somewhere.

已提問 2 年前檢視次數 296 次
1 個回答
0
已接受的答案

Seems like caching issue. Cleared and resolved.

已回答 2 年前

您尚未登入。 登入 去張貼答案。

一個好的回答可以清楚地回答問題並提供建設性的意見回饋,同時有助於提問者的專業成長。

回答問題指南