LoginSignup
0
0

More than 3 years have passed since last update.

AWS Lambdaで、CloudWatchのイベントログを取得する

Last updated at Posted at 2020-07-18

イベントログを取得する方法

①AWS SDK
②AWS CLI

AWS SDKの使い方

pythonのSDK

「AWS SDK for Python (Boto3)」です。
https://aws.amazon.com/jp/sdk-for-python/

どんな関数があるか

何を使えばイベントログが取れるか

①filter_log_events

https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/logs.html#CloudWatchLogs.Client.filter_log_events
・startTime/endTimeで日時の範囲を指定してデータ抽出が可能。ただし、指定する値がUNIXタイムの”””ミリ秒”””
→私は、UNIXタイムでしょ?秒でしょ?と思いこんでいて長時間はまってました(笑)
・filterPatternで抽出条件の指定が可能
 https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html
・1回で取得できるデータは1MBまで。ただし、nextTokenが返却されるから、そのあとそれを使い関数を呼べば続きのデータが取得可能

②start_query

https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/logs.html#CloudWatchLogs.Client.start_query
・cloudwatchlogインサイトを使用することになる。データの抽出集計ができるが、インサイト分の料金もかかる。

ソースイメージ

★すみません、動かしていません。
 あと、lambdaなのでboto3のパッケージのアップロードしないといけません。

sample.py
import boto3

def lambda_handler(event, context):

    client = boto3.client("logs")

    response = client.filter_log_events(
        logGroupName="【ロググループ名】",
        filterPattern="【抽出条件】",
        startTime="【開始時間 unixtimeのミリ秒】",
        endTime="【終了時間 unixtimeのミリ秒】"
    )
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