はじめに
AWSCDKでNodejsのLambdaをTypeScriptで書いているときに、デプロイする前にJavaScriptにビルドする必要がなくなったので、その方法を紹介します。
使うパッケージ
AWSCDK v1.23.0 から @aws-cdk/aws-lambda-nodejs
というパッケージがリリースされました。
このパッケージを使えばTSをビルドすることなくデプロイすることができます。
実際に何をやっているかというと、デプロイする前に内部でParcelを使ってビルドをしてくれます。
詳しくはこちらを確認してください。
サンプル
stack.ts
import cdk = require("@aws-cdk/core")
import { NodejsFunction } from "@aws-cdk/aws-lambda-nodejs"
export class NodejsFunctionStack extends cdk.Stack {
constructor(scope: cdk.App, id: string, props?: cdk.StackProps) {
super(scope, id, props)
new NodejsFunction(this, "NodejsFunction", {
entry: "lambdaSources/demo_function/index.ts",
handler: "handler",
minify: true
})
}
}
NodejsFunction
の entry
に対してTSファイルを指定しています。
これでデプロイをすると .build
というディレクトリが生成され、そこにビルド後のソースが置かれています。
さいごに
これで今までLambdaのソースをTypeScriptで書いているときに、デプロイをする前にビルドする必要があったところが不要になったので、地味に嬉しいアップデートでした。
ではまた!!!