見出し画像

AWS AmplifyでLambdaレイヤーに自作モジュールを追加しLambdaから利用する(Node.js)

Lambdaリゾルバーが増えてきて、共通化したい処理が出てきたためLambdaレイヤーを使って共通処理を定義し、各Lambdaリゾルバーから使用できるようにしてみました。
言語はNode.jsを使用しています。他の言語ではまたやり方が異なります。

amplify add functionでLambdaレイヤーを追加して各functionで使えるようにするまではドキュメントに書かれています。

npmでインストールできる公開されているモジュールであれば{Lambdaレイヤー}/lib/nodejs/ ディレクトリで npm installを行うことで使用できるようになります。
自作のモジュールに関してはnpmモジュールの作成知識が必要だったのでメモしておきます。

  1. {Lambdaレイヤー}/lib/nodejs/ ディレクトリに自作モジュールのディレクトリを作成。ここではmymoduleとする。

  2. 自作モジュールディレクトリに移動しnpm init。質問は適宜回答。

  3. {Lambdaレイヤー}/lib/nodejs/package.jsonに以下を記述。

"dependencies": {
   ...(略),
    "mymodule": "./mymodule"
}

これで各Lambdaリゾルバーからは以下の様に普通のnpmモジュールと同様にインポートして利用できます。

import utils from "mymodule/utils";

簡単ですが今回は以上。

もしこの記事があなたのお役に立てたなら幸いです。 よろしければサポートをお願いします。今後の制作資金にさせていただきます!