Serverless Framework lambda 1プロジェクトで複数関数を定義したい


Serverless Frameworkを使って1プロジェクト内にlambdaの複数関数を用意するには、どうしたらいいの?(TypeScriptで)ということで、簡単にserverless.ymlとプロジェクトの構成を解説していこうかなと思います。

プロジェクト構成

今回はhandler.tsとhandler2.tsにそれぞれ一つづつ関数を定義しています。

serverless.yml

lambdaの関数を複数定義したい場合は、serverless.ymlのfunctionを複数書けばいいだけ。
すごく簡単。

functions:
  hello:
    handler: handler.helloWorld
    events:
      - http:
          method: get
          path: hello
  hello2:
    handler: handler2.helloWorld2
    events:
      - http:
          method: get
          path: hello2

今回は、helloとhello2がそれに当たります。
そこで、それぞれのhandlerの関数を指定すればいいだけです。

デプロイ後

こんな感じで複数関数ができてます。

まとめ

ServerlessFrameworkすごく簡単。
関数ごとにプロジェクトを分ける必要がない。