隨著陸續開發,做出了會員系統,加強了一些資安管控後,欸? 不知道是哪裡出了問題,不能動了!
針對無伺服器的架構,要去哪裡查 Log ?!
在雲端世界裡,Lambda 是無伺服器 (Serverless) 的代表作,但同時也是「黑盒子」——程式怎麼跑、哪裡出錯,如果沒有好的觀測工具,很容易 Debug 到崩潰。
這時候,CloudWatch 就是你 Lambda 的顯微鏡。今天就來聊聊:如何利用 CloudWatch 把 Lambda 的行為看得一清二楚。
在開發或上線的過程中,你一定會遇到這些狀況:
這時候,CloudWatch 就是唯一能讓你看見 Lambda 實際運作的地方。
其實不用額外設定,只要 Lambda 有基本的 CloudWatch Logs 權限(通常角色會帶 AWSLambdaBasicExecutionRole),就會自動把 log 丟進 CloudWatch。
Lambda 的 event 格式會因為觸發來源不同而改變:
所以第一件事就是 print(event),直接從 CloudWatch 看清楚長相。
fields @timestamp, @message
| filter @message like "❌"
| sort @timestamp desc
| limit 20
如果你的系統會跑很多 Lambda,建議統一 log 格式
CloudWatch 就是你的 Lambda 偵錯雷達,學會用它,就不怕「黑盒子」Lambda 出狀況了。