Trước khi đi vào nội dung chính của workshop, chúng ta cần thiết lập lại hạ tầng back-end và ứng dụng web front-end từ workshop trước.
Workshop này là phần tiếp theo của Workshop 000080 - Xây dựng Book Store Serverless. Chúng ta sẽ tái sử dụng cùng project SAM và front-end trên S3. Nếu đây là lần đầu tiên bạn thực hiện, hãy làm theo từng bước dưới đây.
Nếu bạn đã cấu hình AWS credentials (Access Key) từ các workshop trước, có thể bỏ qua bước 1 và đi thẳng đến bước 2. Nếu chưa, hãy làm theo bước 1 để thiết lập AWS credentials giúp SAM CLI có thể deploy tài nguyên trên AWS. Tham khảo hướng dẫn chi tiết tại đây: Chuẩn bị - Workshop 000080
Chạy lệnh sau trong terminal của bạn.
aws configure
Nhập thông tin từ file credentials của IAM user:
ap-southeast-1 (Singapore — region được sử dụng xuyên suốt workshop này).
Tải xuống mã nguồn dự án SAM bên dưới.
Giải nén file zip, sau đó mở terminal và điều hướng đến thư mục chứa file template.yaml.
Cấu trúc thư mục dự án phải trông như sau:
fcaj-book-shop/
├── fcaj-book-shop/
│ ├── books_list/
│ ├── book_create/
│ └── book_delete/
└── template.yaml
Đảm bảo bạn đang ở trong thư mục gốc fcaj-book-shop/ (nơi chứa template.yaml) trước khi chạy các lệnh SAM.
Validate và build ứng dụng SAM.
sam validate
sam build

Deploy ứng dụng SAM lần đầu tiên bằng --guided để cấu hình các tham số deploy.
sam deploy --guided

Nhập các giá trị sau khi được hỏi. Để mặc định các tham số còn lại (nhấn Enter).
fcaj-book-shopap-southeast-1yynySAM sẽ đóng gói và tải mã Lambda lên managed S3 bucket, sau đó bắt đầu quá trình deploy.

SAM hiển thị CloudFormation changeset và yêu cầu xác nhận. Nhập y để xác nhận.
![Xem trước CloudFormation changeset — Deploy? [Y/N]](/images/1-preparation/1.5.png)
Sau lần sam deploy --guided đầu tiên, SAM sẽ lưu cấu hình vào file samconfig.toml. Cho tất cả các lần deploy tiếp theo, bạn chỉ cần chạy sam deploy mà không cần --guided.
Chờ CloudFormation hoàn tất việc tạo stack (khoảng 2–3 phút). Bạn sẽ thấy “Successfully created/updated stack” khi hoàn tất.

Clone mã nguồn front-end về và cài đặt các dependencies.
git clone https://github.com/tranvix0910/FCAJ_Workshop-Serverless.git
cd FCAJ_Workshop-Serverless
npm install --force
Vì ứng dụng có thể được xây dựng từ khá lâu và không được cập nhật liên tục trong quá trình thực hiện workshop, một số dependency có thể đã bị lỗi thời hoặc không tương thích với các phiên bản mới hơn của Node.js packages. Flag --force bỏ qua các xung đột peer dependency và cho phép quá trình cài đặt tiếp tục. Đây là hành vi bình thường và không ảnh hưởng đến chức năng của ứng dụng.

Build ứng dụng React.
npm run build

Tải thư mục build lên S3 bucket của bạn.
aws s3 cp build s3://fcaj-book-shop-by-tranvix --recursive

Truy cập Amazon S3 Console, mở bucket của bạn và xác nhận rằng các file build đã được upload thành công.

Chuyển sang tab Properties của bucket.

Cuộn xuống phần Static website hosting và sao chép URL Bucket website endpoint.

Mở URL trên trình duyệt để xác nhận ứng dụng FCJ Book Store đang chạy đúng.

Ở giai đoạn này, các nút Sign In và Sign Up trên ứng dụng chưa hoạt động. Chúng ta sẽ triển khai chức năng xác thực trong các phần tiếp theo bằng Amazon Cognito và AWS Lambda.
Chúng ta đã thiết lập thành công hạ tầng back-end và ứng dụng front-end. Bây giờ chúng ta sẵn sàng cho nội dung chính của workshop.