Lambda 関数の「プロビジョニングされた同時実行」が利用されない事象を回避するには

Lambda 関数の「プロビジョニングされた同時実行」が利用されない事象を回避するには

Clock Icon2025.06.05

困っていた内容

SQS のメッセージを処理する Lambda 関数を構築しました。
「プロビジョニングされた同時実行」を設定しましたが、ProvisionedConcurrentExecutionsメトリクスが記録されず、プロビジョニングされた同時実行が使用されていないようです。
なぜでしょうか。確認すべき点を教えてください。

どう対応すればいいの?

「プロビジョニングされた同時実行」を設定したエイリアス(バージョン)に、イベントソースマッピングを設定しているかを確認してください。

関数に対するプロビジョニングされた同時実行数の設定 - AWS Lambda

注記
プロビジョニング済み同時実行は、どの関数の $LATEST バージョンでも使用できません。
関数にイベントソースがある場合は、そのイベントソースが正しい関数エイリアスまたはバージョンを指していることを確認してください。正しくない場合、関数はプロビジョニング済み同時実行環境を使用しません。

「プロビジョニングされた同時実行」は、Lambda のエイリアスもしくはバージョンに対して設定し$LATESTには設定できません。

また、SQS 等のトリガー(イベントソースマッピング)設定は、バージョン毎に独立して設定が可能です。

そのため、 Lambda 関数自体は正常に呼び出されているが、プロビジョニングされた同時実行が使用されない場合は、「プロビジョニングされた同時実行」とイベントソースマッピングのエイリアスやバージョンが一致しているかを確認してください。

確認方法として、例えば、Lambda コンソール(AWS マネジメントコンソール)から、トリガーの設定状況を確認する場合は、エイリアス等を選択した状態になっているかを確認してください。

Lambda Provisioned Concurrency Not Used

また、Lambda 関数で出力される CloudWatch Logs のログストリーム名は実行しているバージョンが含まれます。
処理のログが出力されているログストリーム名から、$LATESTや別のバージョン等を実行していないかを確認してください。

Lambda Provisioned Concurrency Not Used 2

参考資料

Lambda には、ログストリームの標準的な命名規則があり、YYYY/MM/DD/[<FunctionVersion>]<InstanceId> の形式で設定します。

Lambda 関数を、プロビジョニングされた同時実行を設定した関数バージョンではなく、$LATEST バージョンで呼び出した。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.