Amazonは最近、AWS Lambda Powertools TypeScriptのベータリリースを発表した。Node.js Lambda関数の一連のユーティリティは、開発者がトレース、構造化ロギング、カスタムメトリックのベストプラクティスに沿って進める役に立つ。
AWS Lambda Powertoolsは、3つのモジュールで構成されるオープンソースプロジェクトだ。1つはTracerで、Lambdaハンドラーと同期/非同期関数をトレースするユーティリティスイートである。次はLoggerで、Lambdaコンテキストの詳細をログの要素として加えるものである。最後はMetricsで、CloudWatch Embedded Metric Format(EMF)で作成されたカスタムメトリクスである。AWSのシニアソリューションアーキテクトであるSara Gerion氏は、Loggerモジュールの主なシナリオをツイートでまとめている。
Lambdaコンテキスト、コールドスタート、構造のログ出力からキーフィールドをJSONとしてキャプチャします。指示されたときにLambdaコンテキストをログに記録します。ログサンプリングは、呼び出しのパーセンテージを測るためにすべてのログをプリントします。任意の時点で構造化されたログにキーを追加します。
また、MetricsとTracerがどのように役立つかを説明している。それによって、単一のCloudWatch EMFオブジェクトでレスポンスがキャプチャされ、メトリクスが集約される。Redditスレッドで、ユーザのteeokayが発表を祝っている。
Typescript Lambdasに移行できなかった唯一の理由でしたが、ついに!
新しいライブラリでは、Node.jsランタイムで実行されるLambda関数を管理するための一連のTypeScript呼び出しが提供される。開発者がサーバーレスアプリケーションから可観測性データを抽出する役に立つ。PowerSchoolのソフトウェアエンジニアリングディレクターのMatt Morgan氏は、記事「Lambda Powertools TypeScriptの最初の調査」を書き、次のように提案している。
私のプロジェクトにすべてのユーティリティを追加すると、約600kbのMinifiedでないバンドル、あるいは200kbのMinifiedバンドルが追加されたようです。AWS SDKまたはX-RaySDKにいくつかの依存関係を連鎖させる価値と必要性を考えると、これは非常に合理的のように思います。チームは「Keep It Lean」の信条を持ちつつ良い仕事をしました。Lambda Powertoolsは、開発者がアプリケーションを改善し、ベストプラクティスに従うために本当に必要なユーティリティの種類に焦点を当てた優れた仕事をしています。
DVLAのチーフアーキテクトであるMatt Lewis氏は次のように付け加えている。
AWS Lambda Powertoolsについて私が気に入っているのは、新しいプロジェクトで、適切に設計されたフレームワークのサーバーレスレンズに示されているベストプラクティスに準拠した開発ができることです(...)JavaScriptでLambda関数を開発するすべての人にとって素晴らしい新ライブラリです。
JavaScriptはLambda Powertoolsでサポートされる初の言語ではない。AWSは以前にPythonとJavaのバージョンをリリースしている。このプロジェクトは現在ベータ版の開発者プレビューであり、公開ロードマップと本番に対応したリリースが今年後半に予定されている。