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 Lambda(node.js v14)でES ModulesとTop Level awaitがサポート」
「AWS Lambdaのコールドスタートを解決するProvisioned Concurrency機能」

KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES20xx),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^


コメント