LoginSignup
0
0

【AWS】Lambda SAMを使用したローカル開発で標準出力結果をファイルに保存する

Posted at

概要

Lambda関数の開発において、SAM(Serverless Application Model)を利用することで、ローカルでの開発がスムーズに行えます。

しかし、Lambda関数をローカルで呼び出す際、通常の方法では結果がファイルに保存されず、ターミナル上(Macの場合)に表示されてしまいます。

そこでLambda関数の出力結果やログをファイルに保存する方法があったので備忘録として残したいと思います。

SAM(Serverless Application Model)とは?

SAM(Serverless Application Model)は、Lambda関数の開発において非常に便利なオープンソースフレームワークです。

SAMを使用することで、ローカルでの開発プロセスが劇的に簡略化されます。これにより、Lambda関数の開発を迅速かつ効果的に行えるようになります。

公式がかなり分かりやすいです。

出力結果やログはファイルに保存したい

下記のように、SAM CLIでなにもオプションを指定せずにLambda関数をローカルで実行するとファイルには出力されません。

$ sam local invoke MyFunctionName
省略...
{"statusCode": 200, "body": "{\"message\": \"hello world\"}"}% 

そこで、オプションを使用することで出力結果とログをファイルに出力することができます。

以下はその手順です。

まずは簡単なLambda関数を用意します。

def handler(event, context):
    print("log") 
    return "hello world" 

次に、Lambda関数の出力結果である "hello world" をファイルに保存します。

sam local invoke 1> stdout.log

同様に、ログもファイルに保存します。

sam local invoke 2> stderr.log

このように、SAM CLIにオプションを指定することで、Lambda関数の出力結果とログをファイルに保存できます。これにより、後で結果やログを簡単に確認できるようになります。

参考

0
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
0
0