LoginSignup
1
0

More than 3 years have passed since last update.

AWS Lambdaをコマンドラインから実行してログを標準出力する

Posted at

概要

CDKでdeployしたLambdaをローカルPCからAWS CLI(version 2)でコマンドラインから実行して結果ログを確認することがあり、これまでは

  • AWS CLIでLambdaをInvoke
  • AWS CLIでCloudWatch Logsの直近実行ログを出力

をおこなっていた。

この方法だとログ出力までに若干タイムラグがあるのと、CloudWatchのログはLambda名で検索するため実行したLambdaの結果ログが一意に定まらないのが若干気になっていた。

単純に知らなかっただけではあるのだが、ドキュメントを見たらコマンドラインから実行してそのまま結果ログを標準出力することが可能だったので、やり方とコマンドをまとめておく。

やり方

  • --log-type Tail を指定
  • 中身の LogResult をデコードして出力

参考:https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/gettingstarted-awscli.html

コマンド

実行してログを標準出力

aws lambda invoke --region ap-northeast-1 --function-name ${Lambda} out --log-type Tail --query 'LogResult' --output text | base64 -d

実行してログを標準出力(AWSプロファイル指定)

aws lambda invoke --profile ${AWSプロファイル名} --function-name ${Lambda} out --log-type Tail --query 'LogResult' --output text | base64 -d

実行してログを標準出力(AWSプロファイル指定、Lambdaに渡すパラメータあり)

aws lambda invoke --profile ${AWSプロファイル名} --function-name ${Lambda} --payload `echo -n '{"param1": "hoge", "param2": "huga"}' | base64` out --log-type Tail --query 'LogResult' --output text | base64 -d

プロファイルは AWS_PROFILE=${プロファイル名} の環境変数渡しも可能

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0