aws-cdk + localstackで定義したlambdaを実行してそのログを確認する
イマイチログの見方がわからず、今後使う時もまたハマりそうなのでメモ
想定読者
- cdkを使ってlambdaを定義できる
cdklocal deploy
を実行して定義したlambdaをデプロイできる- デプロイしたlambdaを実行できる
確認用のlambda
nodejsしか使えないのでnodejsでlambdaを定義する。logにはnode-bunyanを使用する
ログを出力してそれをレスポンスとして返す簡単なlambda関数
import type { APIGatewayProxyHandler } from 'aws-lambda' import * as bunyan from 'bunyan' const logs = bunyan.createLogger({name: 'myapp'}) export const handler: APIGatewayProxyHandler = async (event) => { logs.info({message: 'handle event.', req: event}) return { statusCode: 200, body: JSON.stringify(event) } }
ログの確認方法
# log groupを確認する aws --endpoint-url=http://localhost:4566 logs describe-log-groups --query logGroups[0].logGroupName # logをtailで表示する logGroupNameの部分を取得したものに置き換える aws logs tail {logGroupName} --follow --endpoint-url=http://localhost:4566
これでlambdaのログを追うことができるのでデバッグが捗る