先頃、AWSはLambda拡張の一般提供 (GA) を発表した。これにより、ユーザはLambda関数を、モニタリング、可観測性、セキュリティ、およびガバナンスなどの好みのツールと統合できる。GAリリースには、パフォーマンスの向上と一連のパートナの拡張が含まれている。
昨年秋、同社はLambda拡張のプレビューを発表し、現在、改良が加わりGAになった。AWSによる大幅な改善は、含まれている拡張機能が完了するのを待たずにコードは完了し、関数が直接応答を送信することだ。つまり、拡張機能は、関数の応答が返された後、テレメトリを優先宛先に送信するなどのアクティビティを実行する。さらに、Instana、Sentry、AWS Distro for OpenTelemetry などの他のパートナの拡張機能も利用できる。
可観測性やロギングなど、拡張機能を活用するためのいくつかのユースケースがあり、関数呼び出しの前、呼び出し中、呼び出し後に診断テレメトリデータをキャプチャできる。開発者は、拡張機能を使用して、関数がどのように実行されているかについてのインサイトを得る機会がない場合も、コードを自動的に計測可能にできる。さらに、拡張機能を使用して、関数が実行される前に構成設定やその他の値をフェッチおよびキャッシュすることができる。また、拡張機能は、機能のアクティビティを検出して警告するセキュリティ エージェントとして実行できる。最後に、拡張機能は、Amazon Kinesis や Amazon Simple Storage Service (Amazon S3) などのカスタムの宛先に、Lambda 関数から直接かつ非同期にテレメトリを送信できる。
AWSの主要な開発者アドボケイトであるChanny Yun氏は、Lambda 拡張機能の GA に関するブログ投稿で、それらがどのように機能するかを説明している:
Lambda 拡張機能は、拡張機能 API を使用して、関数および実行環境のライフサイクルイベントに登録します。これらのイベントに応答して、拡張機能は新しいプロセスを開始したり、ロジックを実行したりできます。Lambda 拡張機能は、Runtime Logs API を使用して、Lambda サービスが Lambda 実行環境から直接 Amazon CloudWatch に送信する同じログのストリームにサブスクライブすることもできます。Lambda はログを拡張機能にストリーミングし、拡張機能はログを処理、フィルタリング、および任意の優先宛先に送信できます。
Lambda 拡張機能を使用するには、ユーザは Lambda コンソール、AWS コマンドラインインターフェイス (CLI)、または AWS CloudFormation、AWS サーバレスアプリケーションモデル (AWS SAM)、Terraform などの Infrastructure as Code (IaC) サービスおよびツールを使用して拡張機能をインストールおよび管理できる。ユーザは、拡張機能ページからコンソールを使用するとき、AWS Config から Splunk までの利用可能なすべての拡張機能を見つけることができる。
Lambda の拡張機能を提供する AWS パートナの1つである Lumigo は、Lambda 拡張機能に関するブログ記事に次のように書いている:
ついに、Lambda はバックグラウンド処理時間を提供します。また、AWS パートナがこれを利用する拡張機能を構築するための非常に多くの可能性が開かれるため、パフォーマンスとデータをすばやく表示することの間でトレードオフを行う必要がありません。
AWS の競合他社である Microsoft と Google も、Functions サービスの拡張を提供している。Microsoft は最近、Storage や Event Grid などの他の Azure サービスと統合するための Azure Function Extension Libraries プレビューをリリースした。さらに、モニタリング目的で利用できるオープンソースライブラリがあるが、Lambda のような広範なパートナエコシステムはない。また、Google Functions についても同じだ。
現在、GA リリースの一部としての AWS Lambda 拡張機能のパフォーマンス改善は、米国東部 (バージニア北部)、ヨーロッパ (アイルランド)、およびヨーロッパ (ミラノ) リージョンで利用できる。さらに、サンプルは GitHub で入手でき、一連の詳細なビデオとJulian Wood氏によるブログ投稿によるガイダンスが利用できる。