Khi tìm kiếm thì lúc duyệt đến leaf node chứa nhiều cục index thì db nó sẽ tìm kiếm theo tuyến tính độ khó O(n) (như phần a mô tả duyệt là root node và branch node) hay bằng cách khác như binary search...vậy a
@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
này mình thiếu, phải là
{ "Authorization": Bearer <AccessToken> }mới đúng 🤣@tquangdo bên postman, bạn chọn Bearer Token thử nha
@tquangdo à, vậy chắc mình sẽ thêm phần chỉ đổi tên của S3 bucket nữa. Cảm ơn bạn đã góp ý nha
Khi tìm kiếm thì lúc duyệt đến leaf node chứa nhiều cục index thì db nó sẽ tìm kiếm theo tuyến tính độ khó O(n) (như phần a mô tả duyệt là root node và branch node) hay bằng cách khác như binary search...vậy a
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.jsonlambda_policy.jsonvẫ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