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(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^
コメント