24
19

More than 3 years have passed since last update.

AWSCDKでLambda(Nodejs)をTypeScriptのままデプロイする

Posted at

はじめに

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
    })
  }
}

NodejsFunctionentry に対してTSファイルを指定しています。
これでデプロイをすると .build というディレクトリが生成され、そこにビルド後のソースが置かれています。

さいごに

これで今までLambdaのソースをTypeScriptで書いているときに、デプロイをする前にビルドする必要があったところが不要になったので、地味に嬉しいアップデートでした。
ではまた!!!

24
19
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
24
19