Bước đầu trong bài này, chúng ta sẽ host ứng dụng web (front-end) với S3 Static website hosting.
Mở bảng điều khiển Amazon S3, nhấn Create bucket

Nhập tên cho bucket, ví dụ: fcj-book-shop-tranvix

Bỏ chọn chặn cho phép truy cập public tại mục Block Public Access settings for this bucket

Giữ nguyên các cài đặt mặc định ở phần Default encryption, sau đó nhấn nút Create bucket

Ấn vào bucket vừa tạo, nhấn vào tab Properties

Kéo xuống cuối trang đến mục Static website hosting, ấn Edit

Chọn Enable để kích hoạt host web tĩnh trên S3

Ấn nút Save changes

Sau khi kích hoạt thành công, bạn hãy ghi lại Bucket website endpoint (đường dẫn của web)

Chọn sang tab Permissions, kéo xuống mục Bucket policy, ấn nút Edit

Sao chép đoạn JSON dưới đây vào mục Policy (thay thế fcj-book-shop-tranvix thành tên bucket của bạn)
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::fcj-book-shop-tranvix/*"
}
]
}
Nhớ đổi fcj-book-shop-tranvix trong đoạn JSON trên thành tên S3 bucket bạn vừa tạo ở bước 2.

Ấn nút Save changes

Bucket policy đã được cập nhật thành công

git clone https://github.com/tranvix0910/FCAJ_Workshop-Serverless.git
cd FCAJ_Workshop-Serverless
npm install --force
npm run build
Nếu npm install (không có --force) bị lỗi do xung đột dependency như ERESOLVE overriding peer dependency, hãy sử dụng npm install --force để bắt buộc cài đặt mặc dù các package đã bị outdate.
aws s3 cp build s3://fcj-book-shop-tranvix --recursive
Nếu bạn tải lên thất bại, hãy cấu hình access key ID, secret access key, aws region và output format với câu lệnh aws configure
Kiểm tra S3 bucket để xác minh các tệp đã được tải lên

Nhấn vào tab Objects để xem các file đã được upload lên

Dán Bucket website endpoint mà bạn vừa ghi lại vào trình duyệt web của bạn

Ứng dụng của bạn hiện tại chưa có dữ liệu nào được trả về. Để lấy dữ liệu từ DynamoDB, hãy sang phần tiếp theo.