😽

aws-lambda-nodejs での lambda 作成

2021/09/18に公開

aws-lambda-nodejs が stable (安定版) になった。
https://docs.aws.amazon.com/cdk/api/latest/docs/aws-lambda-nodejs-readme.html

aws-lambda-nodejs は、CDK上でlambda関数を登録してビルド・デプロイまでを一貫して行うことができるライブラリである。
これを使うことでlambda関数を個別にビルドせずに、CDKでビルド・デプロイを行うことができる。

内部ではesbuildを利用してビルドを行っている。

lambdanode-stack.ts
import * as cdk from "@aws-cdk/core";
import * as lambda from "@aws-cdk/aws-lambda-nodejs";

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

    new lambda.NodejsFunction(this, "my-handler", {
      entry: "lib/lambda/getdate/index.ts",
      handler: "handler",
      bundling: {
        minify: false,
        sourceMap: true,
        nodeModules: ["date-fns"],
      },
    });
  }
}
index.ts
const format = require("date-fns/format");

exports.handler = async (event: any) => {
  const response = {
    statusCode: 200,
    body: JSON.stringify(format(Date.now(), "MM/dd/yyyy")),
  };
  return response;
};

Discussion