LoginSignup
0
0

More than 3 years have passed since last update.

AWS Lambdaの運用監視ツール

Last updated at Posted at 2020-05-12

AWS Lambdaの運用監視ツール

便利なツールは以下の通り

  • DAZN Lambda Powertools

関連性のあるLambda同士を紐づけるIDをログに出力してくれます。
LambdaからLambdaの呼び出しが複雑になる場合に、関連性のあるログを一括して検索した場合に活用できます。

参考URL:https://dev.classmethod.jp/articles/dazn-lambda-powertools/

  • AWS X-Ray

AWSのサービス(Lambdaもできる)の関連性を可視化でき、分析もできます。
※画面イメージ的には、JP1とか、Jenkinsのパイプライン的な感じ。Lambdaのジョブフローが見える感じ。
※内部的には、上記で紹介した「DAZN Lambda Powertools」と同じようなことしてます。

参考URL:https://docs.aws.amazon.com/xray/index.html

DAZN Lambda Powertools&AWS X-Rayどちらも使う場合の実装サンプルは以下。

var AWSXRay = require('aws-xray-sdk-core');
const client = require('@dazn/lambda-powertools-lambda-client');
var Lambda = AWSXRay.captureAWSClient(client);
const Log = require('@dazn/lambda-powertools-logger');
const wrap = require('@dazn/lambda-powertools-pattern-basic');

exports.handler = wrap(async (event, context) => {
    Log.info('start');
    const request = {
        FunctionName: '次の関数名',
        InvokeArgs: JSON.stringify({ message: 'hello lambda' })
    };
    await Lambda.invokeAsync(request).promise();
});

※アクティブトレースにチェック必要(X-RAY使う為)
※レイヤーに、xrayとdaznのライブラリ追加が必要
※起点のLambdaから複数のLambdaを非同期的に呼び出す場合は、AWSXRay.captureAsyncFuncを使った方が良さげ。
※本番環境で運用する場合は、エラーハンドリングはちゃんと書いてね。

なお、X-RAYの機能は、性能分析(Lambdaの実行時間分かる)に使えるのですが、
Lambdaの中の一部分の性能をはかりたい場合には、サブセグメント(beginとend)を決め、
サブセグメントの実行時間を計測できます。

詳細は以下URL
https://docs.aws.amazon.com/ja_jp/xray/latest/devguide/xray-sdk-nodejs-subsegments.html

概念的にはJavaの実装のが理解しやすい。以下の通り
https://docs.aws.amazon.com/ja_jp/xray/latest/devguide/xray-sdk-java-subsegments.html
※Node.jsでも、Java的な書き方は可能。

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