TORIPIYO DIARY

recent event, IoT, programming, infrastructure topics

VS codeでServerlessフレームワークのlambda関数をデバッグする

serverlessフレームワークを使って、lambdaアプリケーションを作っているのですが、ローカル環境でのlambda関数のデバッグ方法を知らなかったのでまとめました。

以下の手順ではserverlessアプリケーションの雛形を作成して、ローカル環境でvs code (visual studio code)を使ってデバッグをしています。

手順

serverlessのインストール

brew install serverless

serverless applicationのひな形作成

sls create --template aws-nodejs --path application

vs codeを起動

cd application
code . # vs codeを起動

デバッグ設定
debugのアイコンを選択 -> Add Configurationのテキストをクリック

f:id:ha107chan:20190915224536p:plain
add_configuration

以下のようにlaunch.jsonのファイルを編集して保存する

  • -f: 実行する関数名を指定
  • --data: eventオブジェクトに渡すデータを指定
{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "Launch Program",
      "program": "/usr/local/bin/sls",
      "args": [
        "invoke",
        "local",
        "-f",
        "hello",
        "--data",
        "{}"
      ]
    }
  ]
}

デバッグ実行
実行を停止させたい行の隣をクリックして、以下のように赤い丸印のブレークポイントを設定する。

f:id:ha107chan:20190915224611p:plain
breakpoint

Launch Programの隣にある緑の三角ボタンをクリックすると、デバッグモードでの実行が開始されてブレークポイントを指定した行で実行が止まる。
DEBUG CONSOLEを使って変数の中身などを確認できる。

f:id:ha107chan:20190915224634p:plain
output