AWS AmplifyでLambdaレイヤーに自作モジュールを追加しLambdaから利用する(Node.js)
Lambdaリゾルバーが増えてきて、共通化したい処理が出てきたためLambdaレイヤーを使って共通処理を定義し、各Lambdaリゾルバーから使用できるようにしてみました。
言語はNode.jsを使用しています。他の言語ではまたやり方が異なります。
amplify add functionでLambdaレイヤーを追加して各functionで使えるようにするまではドキュメントに書かれています。
npmでインストールできる公開されているモジュールであれば{Lambdaレイヤー}/lib/nodejs/ ディレクトリで npm installを行うことで使用できるようになります。
自作のモジュールに関してはnpmモジュールの作成知識が必要だったのでメモしておきます。
{Lambdaレイヤー}/lib/nodejs/ ディレクトリに自作モジュールのディレクトリを作成。ここではmymoduleとする。
自作モジュールディレクトリに移動しnpm init。質問は適宜回答。
{Lambdaレイヤー}/lib/nodejs/package.jsonに以下を記述。
"dependencies": {
...(略),
"mymodule": "./mymodule"
}
これで各Lambdaリゾルバーからは以下の様に普通のnpmモジュールと同様にインポートして利用できます。
import utils from "mymodule/utils";
簡単ですが今回は以上。
もしこの記事があなたのお役に立てたなら幸いです。 よろしければサポートをお願いします。今後の制作資金にさせていただきます!