最近、でもないけど半年ほど前?に追加されたLiveTailがLambdaのデバッグにめちゃ便利だった話。
前置き
直接環境にアクセスできるときはTailコマンドを使ってアプリケーションのログをリアルタイムで見ることはよくあります。それのクラウド版です。
ELB配下で複数台動くマシンのログをリアルタイムで確認するのに少しだけ使っていました。
これはこれで強力です。だって特定のマシンに乗り込んじゃうとロードバランスされた後でどこにログが落ちるかわからないので。
と言ってもそこまでありがたみを感じることなくあんまり使ってませんでした。
環境
AWS CloudWatch Logs - LiveTail
Lambda python3.12
Lambdaのデバッグ
初期のDebugにはprintを使ってResultに表示されるログを確認しながら作業します。
VisualStudioを使ってやるという人、ごめんなさい。ローテクでお話が進みます。
ほとんどこれで事足りるぐらいの比較的軽い処理しか乗せないので大丈夫です。
このLambdaがプロダクトに組み込まれてAPI Gateway経由でhttpsアクセスされるようになるとヘッダにのせる情報量やパターンが増えて、よりリアルな挙動を確認したくなってきました。
というシチュエーションになってくるとパラメータを簡単に変更できるPostツールや別の開発製品から呼び出したときのインタフェースでログを見たくなるわけです。もちろんLambdaにテストパターンを記載もできるんですけどやはり面倒で、あれはやはり初期の単体動作確認レベルなのかなと思うわけです。
LiveTailを使う
Lambdaの実行ログはCloudWatchに落ちて特定できることを前提とします。
LiveTailを開いてください。
CloudWatch > Live Tail
ログ出力がないとずっとぐるぐるしてますけど焦らないで。
何かログが出るようにLambdaを実行させてください。
Tailコマンドと同じ要領でログが出てきます。
これで外部からPostman等のレストツールやプロダクトに近い開発環境から呼び出してログをリアルタイムに確認することが簡単にできます。
ログを1回1回開くのがだるかった(私がそう)ので地味な時間削減になりました。
Lambdaデバッグにこそむいてるかなと思いましたが皆さんはどうでしょう?
是非使ったことない人は使ってみてください。
その他
ここも参考になりました。