0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS CLIでLambda関数名を指定して実行回数を確認してみる

0
Last updated at Posted at 2026-04-01

概要

AWS CLIのcloud watchのコマンドを用いて、Lmabda関数を指定し、当該関数の指定時間あたりの実行回数を取得してみる。

前提

条件

  • AWS CLIが導入済みであること
  • AWS CLIにAWSアカウントの認証情報が登録されていること

状態

筆者はserverlessを用いてGET hello world で200が返るAPI GatewayとLambda関数を用意した。

方法

下記を実行する。

aws cloudwatch get-metric-statistics \
  --namespace AWS/Lambda \
  --metric-name Invocations \
  --dimensions Name=FunctionName,Value=対象のLambda関数名 \
  --start-time $(date -u -v-1H +%Y-%m-%dT%H:%M:%SZ) \
  --end-time $(date -u +%Y-%m-%dT%H:%M:%SZ) \
  --period 3600 \
  --statistics Sum \
  --profile 個人のプロファイル名(特に設定した覚えがない場合は`default`でOK)

下記の様に「Sum」の部分に指定時間あたりの実行回数が表示される。

{
    "Label": "Invocations",
    "Datapoints": [
        {
            "Timestamp": "2026-04-01T13:37:00+09:00",
            "Sum": 10.0,
            "Unit": "Count"
        }
    ]
}

CLIコマンドの解説

  • aws cloudwatch get-metric-statistics:「aws cliにてCloudWatchの操作を操作をします。CloudWatch内部での操作はメトリクス統計取得です。」という命令
  • --namespace AWS/Lambda:対象となるAWSのサービスを指定(今回はLambdaを指定)
  • --metric-name Invocations:対象となるメトリクスの区分を指定(今回はInvocationsで"実行回数"を指定、その他にはError"エラー数"やDuration"実行時間"等がある)
  • --dimensions Name=FunctionName,Value=対象のLambda関数名:対象のLambdaの指定(Name=FunctionNameでLambda関数名にて指定することを設定し、Value=で実際の関数名を指定、残念ながらワイルドカード指定はできない)
  • --start-time $(date -u -v-1H +%Y-%m-%dT%H:%M:%SZ):取得開始時間の指定※1($(date -u -v-1H +%Y-%m-%dT%H:%M:%SZ)は「今から1時間前」)
  • --end-time $(date -u +%Y-%m-%dT%H:%M:%SZ):取得終了時間の指定($(date -u +%Y-%m-%dT%H:%M:%SZ)は「今の時間」)
  • --period 3600:集計時間の粒度※2、秒単位(3600の場合、1時間単位)
  • --statistics Sum:集計方法の指定(Sumは合計、他にはAverage"平均"やMax"最大"、Mix"最小"がある)

特定の文字列を含むLmabda関数名とランタイムで絞り込み、個々に実行回数を出したい場合は下記のようになる。

aws lambda list-functions --profile default \
  --query 'Functions[?Runtime==`nodejs20.x`].FunctionName' \
  --output text | tr '\t' '\n' | grep "絞り込みたい文字列" | while read func; do
  echo "=== $func ==="
  aws cloudwatch get-metric-statistics \
    --namespace AWS/Lambda \
    --metric-name Invocations \
    --dimensions Name=FunctionName,Value=$func \
    --start-time $(date -u -v-1H +%Y-%m-%dT%H:%M:%SZ) \
    --end-time $(date -u +%Y-%m-%dT%H:%M:%SZ) \
    --period 3600 \
    --statistics Sum \
    --profile default
done

上記の結果でDatapointsが空の配列で返る事がある。これは対象期間中に当該のLambdaの実行がなくメトリクスがヒットしなかった状態。

※1・・・-v-1Hとしている部分で現在時刻から1時間前を表現している。-v-1Hの他に-v-1d"1日前"、-v-1m"1か月前"、-v-1y"1年前"などもある。ちなみに開始時間、終了時間はIOS 8601形式ならテキスト指定も可能(末尾のZはUTC指定を意味するのでJSTから-9時間する必要がある)
※2・・・今回は取得時間のレンジが1時間、--periodが3600(1時間)なのでSumの結果が1個出力される。今回は取得時間のレンジが1時間、--periodが1800(0.5時間)の場合はSumの結果がレンジ内で0.5時間ごとに分けて表示される。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?