AWS CDKでLambda(node.js)のProvisioned Concurrencyを設定してデプロイする方法

AWS CDKでLambda(node.js)のProvisioned Concurrencyを設定してデプロイする方法

  バージョン
CDK 2.27.0

AWS CDKでLambda(node.js)デプロイする際にプロビジョニング設定をする方法です。

Lambda v14からtop level awaitがサポートされたので、重い初期処理はhandler外に記述し、同時実行数を設定しておくことによってコールドスタート問題が解決されるようです。

import { Stack, StackProps, aws_lambda_nodejs as lambda, Duration } from 'aws-cdk-lib';
import { Runtime } from 'aws-cdk-lib/aws-lambda';
import { Construct } from 'constructs';

export class Sample001Stack extends Stack {
  constructor(scope: Construct, id: string, props?: StackProps) {
    super(scope, id, props);

    const index = new lambda.NodejsFunction(this, 'IndexHandler', {
      entry: "lambda/index.js",
      runtime: Runtime.NODEJS_16_X,
      timeout: Duration.minutes(10),
      bundling: {
        nodeModules: ['moment-timezone']
      }
    })
    // add start
    index.addAlias('hoge', {
      provisionedConcurrentExecutions: 2
    })
    // add end
  }
}

addAliasメソッドでエイリアス作成し、同時実行数=2とします。

これでデプロイします。

cdk deploy

hogeというエイリアスが作成されて同時実行数が2となります。

AWS CDKでLambda(node.js)のProvisioned Concurrencyを設定してデプロイする方法

参考サイト

AWS Lambda(node.js v14)でES ModulesとTop Level awaitがサポート

AWS Lambdaのコールドスタートを解決するProvisioned Concurrency機能

 

コメント

株式会社CONFRAGE ITソリューション事業部をもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む

タイトルとURLをコピーしました