Sau khi cập nhật xong thì ta chạy câu lệnh để cấp quyền cho API Gateway có thể thực hiện được books_list:production
=> books_list:1 cũng cần chạy CMD dài ngoằng này, phiền nhỉ! tại sao staging KO cần mà production lại cần? sao API GW trigger Lambda mà phải cần add permission nghe lạ nhỉ, chưa thấy bao giờ ^^
ý nghĩa permission này map với chỗ nào trong AWS console vậy? sao mình xem trong lambda_role > lambda_policy KO phản ánh permission mới dc add này?
@tquangdo chỗ này thì tương lai sẽ dùng os.GetEnv() để lấy giá trị ra nha bạn, mình sẽ update trong code để lấy env được setting từ Lambda ra. Luồng của terraform sẽ là khi tạo Cognito xong, sẽ lấy ClientId đó để gán vào biến env của Lambda function. Này cũng do mình chưa mò tới, với do bài 6 cũng không có xài Lambda liên quan tới Cognito mà chỉ xài CloudFront + S3 nên mình mới tạm thời để vậy nha 😂
repo bai-6KO có code này, chỉ có login.zip đã dc build rồi thôi
=>
mình chưa bit login.zip bạn setting ClientId nào, nhg mình đoán là value cũ của bai-5, nên nếu ai cứ thế mà dùng thì sẽ KO login được, do ClientId bị khác với thực tế AWS console!
mình hiu vậy đúng hem? Hay là login.zip bạn đã set variable auto bắt đúng ClientId luôn rồi? (do bạn KO up code main.go nên ko bit được ^^)
để tiện cho user có thể terraform 1 phát chạy luôn, thì mình suggest bạn nên push code login vô bai-6, và note thêm cách update ClientId rồi build lại
(đây chỉ là suggest của riêng mình, với mục đích làm sao tiện nhất cho user khi bị bug ^^)
Vì ta cần upload hình từ trang web, nên Content-Type của request sẽ là multipart/form-data, nên ta sẽ dùng hàm NewReaderMultipart để lấy thông tin form-data từ request ra...
=> vụ multipart này phải truyền body ra sao chỉ mình với!
Postman chỉ có cách chọn Bearer Token, sau khi chọn xong click sang tab Header thì nó sẽ auto add vô { "Authorization": Bearer <AccessToken> }. Muốn sửa thì sửa bên tab Authorization
Ngoài tool Postman mình cũng đã chạy thử tool khác, cũng đã { "Authorization": Bearer <AccessToken> } rồi nhưng vẫn lỗi "Unauthorized"
-> cho mình confirm lại là accesstoken của login lấy từ bài 5 part 1 đúng hem, hay có sửa j src code POST login ở part 2 nên cần build lại hem? với lại bạn đã chạy Postman POST book được rồi đúng ko? (sorry ko có ý nghi ngờ gì, tại thấy bạn chỉ ghi chữ chứ ko có screenshot nên ko biết là bạn có chạy thật POST chưa? ^^)
THẢO LUẬN
@hmquan08011996 cho mình hỏi 2 câu nha ^^
1
books_list:1cũng cần chạy CMD dài ngoằng này, phiền nhỉ! tại sao staging KO cần mà production lại cần? sao API GW trigger Lambda mà phải cần add permission nghe lạ nhỉ, chưa thấy bao giờ ^^lambda_role>lambda_policyKO phản ánh permission mới dc add này?@tquangdo chỗ này thì tương lai sẽ dùng os.GetEnv() để lấy giá trị ra nha bạn, mình sẽ update trong code để lấy env được setting từ Lambda ra. Luồng của terraform sẽ là khi tạo Cognito xong, sẽ lấy ClientId đó để gán vào biến env của Lambda function. Này cũng do mình chưa mò tới, với do bài 6 cũng không có xài Lambda liên quan tới Cognito mà chỉ xài CloudFront + S3 nên mình mới tạm thời để vậy nha 😂
@hmquan08011996 cho mình confirm lại nhận thức nhé ^^ bạn nói là:
bai-6/terraform-start/gateway_method.tfđã có sẵn setting Authorizer của user poolClientIdcủa user pool trong src code sau:bai-6KO có code này, chỉ cólogin.zipđã dc build rồi thôilogin.zipbạn settingClientIdnào, nhg mình đoán là value cũ củabai-5, nên nếu ai cứ thế mà dùng thì sẽ KO login được, doClientIdbị khác với thực tế AWS console!loginvôbai-6, và note thêm cách updateClientIdrồi build lạiCảm ơn bạn và chúc mừng năm mới nha
cho e hỏi là những cái execution plan kia là của oracle đúng ko ạ
cảm ơn bạn đã chia sẻ 😁
này chắc do lệnh sed bên linux với macos khác nhau quá 🤣. Mấy cái này terraform nó có support hết, tại mình chưa mò ra nên mới dùng CMD đỡ
)))
@hmquan08011996 thanks, mình vẫn upvote đều đặn nhé ^^
.env-cmdrccó dấu chấm, CMD ko hiu! (mình chạy bằng macos 12.1)sed -i "..."->sed -i -- "..."Hy vọng anh chia sẽ nhiều hơn để phát triển cộng đồng, Chúc anh nhiều sức khỏe để viết nhiều bài thêm nữa.
Hịn quá, cảm ơn tác giả.
@tquangdo mình thấy truyền đúng r, tại mình test bằng code FE chứ ko có dùng postman, này để mình kiểm tra lại nha
@hmquan08011996
@hmquan08011996 vãi!!!! =]]]]
sao mình upload lên heroku nó bị lỗi h10,h12,h14
mình kiểm tra lại rồi, bạn dùng IdToken mới đúng nha 😂
còn không thì bạn chạy terraform ở bai-6 rồi thử lại phần create book xem, trong đó có phần đã cấu hình Authorization chính xác
bạn chụp phần tạo ở chỗ Authorizers cho mình xem thử
@hmquan08011996
@hmquan08011996 hic, chọn rồi vẫn KO dc =[[[[
Bearer Token, sau khi chọn xong click sang tabHeaderthì nó sẽ auto add vô { "Authorization": Bearer <AccessToken> }. Muốn sửa thì sửa bên tabAuthorizationỞ phần TABLE ACCESS BY INDEX ROWID tại sao TABLE ACCESS BY INDEX ROWID lại đc thực thi trước INDEX UNIQUE SCAN vậy ạ