📝

Discord の Slash Commands の向き先を Lambda にしたが、aws-sdk 叩く程度すらタイムアウトになる対策

2024/01/28に公開

Cold start 時にギリギリ 3 秒超えてしまうのをなんとかする。

要するに CDK だとこういう感じ。

import * as lambda from "aws-cdk-lib/aws-lambda";
import * as nodejs from "aws-cdk-lib/aws-lambda-nodejs";
import * as path from "node:path";

const notifyFn = new nodejs.NodejsFunction(
  this,
  "Notification",
  {
    entry: path.join(__dirname, "../lambda/index.ts"),
    runtime: lambda.Runtime.NODEJS_20_X,
    bundling: {
      externalModules: [],
    },
    memorySize: 1024,
  }
);
  1. memorySize を増やす
    1024 にすることで安定して 1 秒程度になった。

  2. bundling.externalModules で aws-sdk も含めるようにする

https://github.com/aws/aws-cdk/issues/25492

init の時間が 600 ms くらいから 300ms くらいになった。

Discussion