@hmquan08011996
uh nhỉ, thanks bạn đã chỉ, mình làm theo đúng là như vậy, đã có lambda policy rồi thì KO add thêm vô bucket policy nữa: terraform-start/policies/lambda_policy.json
-> lí do mà trưa mình chạy ko được vì clone từ git về thì bucket name trong lambda_policy.json vẫn là name cũ, mình KO bit nên cứ chạy terraform thì sai name nên ko có quyền put! Cần phải đổi thành name mới tương ứng với S3 của mình
-> bắt buộc phải đổi vì bucket name là unique, chọn name trong bài của bạn sẽ báo lỗi exist!
(mình nghĩ vụ này chắc user khác làm theo cũng bị dính giống mình đấy, vì ít ai trước khi chạy terraform mà check all src code để phát hiện lambda_policy.json)
@tquangdo còn cái policy của thằng S3 bucket dùng để upload image thì sẽ giống như của thằng S3 bucket dùng host trang SPA nha bạn. Còn quyền s3:PutObject thì mình sẽ gán quyền đó cho Lambda nha (do mình không có đề cập tới nó trong bài 🤣), nó nằm ở folder policies của terraform-start. Còn ở trên nếu mình thêm s3:PutObject vào thì có nghĩa là ai cũng có quyền ghi vào S3 bucket của mình cả
Bonus thêm là mình nên dùng Fragment dạng đầy đủ trong trường hợp render jsx trong vòng lặp, vì lúc đó mình cần gắn key cho nó, mà cú pháp shorthand không hỗ trợ. Ví dụ:
arrays.map(e => (
<React.Fragment key={e.id}>
< h1>Make It Awesome</h1>
< p>Hao is awesome !</p>
</React.Fragment>
))
cảm ơn bạn đã góp ý nha, mình không để prefix folder đằng trước trong mấy câu lệnh CLI là để cho mọi người dễ copy hơn thôi 🤣. Mình sẽ cập nhật lại trong file README của github cấu trúc folder
trước hết cám ơn bạn đã viết rất chi tiết, mình thích chỗ bạn ko chỉ up all code đã done (bai-4/code-finish) mà còn cả code chưa done (bai-4/code), sau khi clone về thì sẽ bị bug và fix bug step by step như bạn đã ghi ^^
nói chung là bài của bạn OK quá rồi, chỉ góp ý nhỏ xíu là:
nếu dc bạn nên ghi rõ trong GIT thì code nào done cái nào chưa (VD bai-4/code-finish là done...)
bạn nên giải thích sơ về project structure, để trước khi chạy CMD user còn biết cd vào đâu cho đúng, VD: ^^
THẢO LUẬN
deploy API rồi nhé ^^ nếu được phiền bạn screenshot cái header "Authorization" cho mình refer dc hem?
@hmquan08011996
@hmquan08011996
staging/login
> lấyAccessToken
> bỏ vô test thử Authorizer cũng báo lỗi tương tự! =[[[@hmquan08011996 uh nhỉ, thanks bạn đã chỉ, mình làm theo đúng là như vậy, đã có lambda policy rồi thì KO add thêm vô bucket policy nữa:
terraform-start/policies/lambda_policy.json
lambda_policy.json
vẫn là name cũ, mình KO bit nên cứ chạy terraform thì sai name nên ko có quyền put! Cần phải đổi thành name mới tương ứng với S3 của mìnhlambda_policy.json
)@tquangdo còn cái policy của thằng S3 bucket dùng để upload image thì sẽ giống như của thằng S3 bucket dùng host trang SPA nha bạn. Còn quyền s3:PutObject thì mình sẽ gán quyền đó cho Lambda nha (do mình không có đề cập tới nó trong bài 🤣), nó nằm ở folder policies của terraform-start. Còn ở trên nếu mình thêm s3:PutObject vào thì có nghĩa là ai cũng có quyền ghi vào S3 bucket của mình cả
@tquangdo oke bạn nha, để mình cập nhật lại
@hmquan08011996
Yayy, vừa có lì xì vừa được Bonus chất lượng quá chi là hờii r =))
Chúc anh năm mới Trên thông cốt đing, dưới tường lịch sử nhé ạ 🥳🥳
nhớ Deploy lại API Gateway
@tquangdo sửa thành
*/*
nha bạn@hmquan08011996
+1 lì xì nè 🥰
Bonus thêm là mình nên dùng Fragment dạng đầy đủ trong trường hợp render jsx trong vòng lặp, vì lúc đó mình cần gắn key cho nó, mà cú pháp shorthand không hỗ trợ. Ví dụ:
arrays.map(e => ( <React.Fragment key={e.id}> < h1>Make It Awesome</h1> < p>Hao is awesome !</p> </React.Fragment> ))
cảm ơn bạn đã góp ý nha, mình không để prefix folder đằng trước trong mấy câu lệnh CLI là để cho mọi người dễ copy hơn thôi 🤣. Mình sẽ cập nhật lại trong file README của github cấu trúc folder
@hmquan08011996
ơ kìa :v
Quá nhanh nhưng thiếu hashtag rồi anh ới 🤣
Chúc bạn năm mới thành công nhé. Hy vọng mình kiếm dc thứ hay ho để viết phục vụ ace
Cám ơn bạn nhiều. Chúc bạn và gia đình năm mới nhiều sức khoẻ và bình an, hạnh phúc
Dạ chúc mừng năm mới anh nhaa =='