はじめに
2025/7/17に以下のラムダのアップデートがありました。
VSCodeを使ったLambdaの開発が今回のアップデートでより簡単になりましたよ。ってアップデートみたいです。
やってみよ!
早速試してみます。
今回紹介する機能のうち、どれが今回のアップデートが正直よくわかっていないので、一部既存の機能を説明しているかもです…
マネコンからVSCodeを起動
マネコンからLambdaのコード修正を行うところを見てみると、Open in Visual Studio Code
が増えているので、ここを選択します。
あとは、画面の案内のまま進めていくと、VSCodeが起動し、ソースを編集できるようになります。
無事開けました!
また、開くとこんな案内が出てました。
以降、これに従って動作確認してみます。
Lambda関数の編集、デプロイ
VSCodeで適当な編集を加え、保存すると右端にデプロイするかを聞かれますので、ここでDeploy
を選ぶとクラウド上に変更が適用されます。
Lambda関数を実行
左のAWS ToolKitアイコンから、対象のLambdaを選択し、再生ボタンを押します。
次の画面でリモートデバッグや、イベントの指定ができます。
まず普通に起動してみます。
おお、きちんとログが確認できるので便利です!
リモートデバッグ
次に関数実行時に、Remoto debugging
のチェックを有効にし、Local root path
をいずれかの方法で指定しておくと、ブレークポイントを指定したデバッグができました。
ローカル開発と同じようにデバッグができ、とっても便利です!
なお、ブレークポイントで止まっている時間もログ上では課金されている模様…?
ブレークポイントを設定し、30秒程度放置した結果のログを見ると、Billed Duration
にも停止時間が含まれている模様です。
REPORT RequestId: ac95cf33-c7d4-4a27-a1b3-ba89a7a0c83a Duration: 38447.52 ms Billed Duration: 38448 ms Memory Size: 128 MB Max Memory Used: 82 MB
リモートデバッグはどうやって実現しているの?
テスト対象関数のタイムアウト値を超えた時間のデバッグはどうやって実現してるんだろう?と思い、調べてみると以下記事が見当たりました。
AWS Toolkit は、Lambda 関数に Lambda デバッグレイヤーを追加し、Lambda 呼び出しのタイムアウト制限を 900 秒まで延長することで、リモートデバッグを可能にします。
ただ、リモートデバッグ中の関数をマネコン上で確認しても、タイムアウト値が伸びていたり、デバッグ用のレイヤーが追加されているようには見えませんでした。
AWS SAMプロジェクトへの変換
次はAWS SAMプロジェクトへの変換をしてみます。
プロジェクト保存場所を選択し、その後スタック名も指定します。
プロジェクト作成だけではなく、デプロイまでしてくれそうです!
しばらく待って出来上がった資材がこれ。
ちょっと名前が変な感じですがAWS SAMのプロジェクトへ変換されてました。
sam build
sam validate
も問題なく通ってました。
なお、このような周辺にサービスが紐づいている場合はLambdaに紐作くリソースのみ、SAM Projectに関連づけられるみたいです。
このケースだと、DynamoDBは関係付けられず、イベントソースマッピングのみ、SAMプロジェクトの中に定義されていました。
さいごに
元々AWS SAMを使えば、ローカルでも良い開発体験が出来たんだけど、Lambda単体のみでも開発体験が良くなったんだなーって感じました。
またAWS SAMへの変換も簡単にできるみたいなので、今回取り上げてみました。
誰かのお役に立てば幸いですー!