AWS LambdaのログをCloudWatch Logs Insightsで分析する

サンプルとしてクエリパラメータをCloudWatchに送信するLambda関数を作成し、APIGatewayから呼び出します。

その後、CloudWatch Logs Insightでログを抽出します。

Lambda関数を作成

コンソールから「Lambda」 > 「関数の作成」

コードを張り付けてデプロイ

Python
import json

def lambda_handler(event, context):
    query_params = event.get("queryStringParameters",{})
    log_message = json.dumps(query_params)
    print(log_message)
    
    response = {
        "statusCode": 200,
        "body": log_message,
    }
    
    return response

クエリパラメーターをJSONに変換してログに送信しています。

API Gatewayに紐づける

コンソールから 「API Gateway」> 「APIを作成」

「REST API」を選択

「Actions」>「Create Method」

GETを選択

Use Lambda Proxy integrationにチェック

FunctionNameに先ほど作成したLambda関数名を指定 > 「Save」

「Actions」>「Deploy API」

Stage nameを入力 > 「Deploy」

APIのURLが表示されるのでメモしておきます。

CloudWatch Logs Insightsでログを分析

ブラウザにAPIURL + ?user=exampleUserを入力してGETリクエストを送信

レスポンスと同じ内容がログに書き込まれます。

レスポンス
{"user": "exampleUser"}

コンソールから > 「CloudWatch」

サイドバー > 「ログのインサイト」

ロググループを選択しクエリを実行します。

query
fields @timestamp, @message
| filter user = "exampleUser"
| sort @timestamp desc
| limit 20

結果を取得できたら成功です。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です