📝
Lambdaレイヤーにnode_modulesを登録してみた
Node.jsのプログラムをLambdaにアップロードするときに、node_modulesの容量が大きすぎてエラーになることがあります。
それを回避するために、公式側でLambdaレイヤーにnode_modulesを登録することができるようになっているので、今回はその方法を紹介します。
前提
- Node.jsをインストール済み
-
npm install
の実行など、Node.jsに関する基礎知識がある - Lambdaに関する基礎知識がある
手順
公式ドキュメントの
Lambda レイヤーの作成と共有
を参考に進めていきます。
1. nodejsフォルダを作成する
「ただフォルダを作成するだけ」
ではありますが、1点注意点があります。
フォルダ名は必ず「nodejs」で作成します。
2. nodejsフォルダでモジュールをインストールする
nodejsフォルダ内で、必要なモジュールをインストールします。
npm init
は不要で、インストールのみでOKです。
今回はrequest
モジュールだけインストールしておきます。
3. nodejsフォルダをzip化する
zip化しましょう。
4. Lambdaレイヤーの作成
Lambdaコンソールからレイヤーを作成します。
僕のアカウントではnode_modulesという名前で作成済みです。
zipファイルをアップロードしますが、10MB以上の場合はS3を使用することが推奨されています。
ランタイムは必要なNodeのバージョンを選択してください。
5. 関数にレイヤーを追加
対象の関数コンソールからレイヤーを追加します。
これで登録と追加ができたので作業完了です。
モジュールを追加したい場合は、ローカルでnpm install
してからバージョンを作成することでバージョンアップできます。
まとめ
今回はLambdaレイヤーにnode_modulesを登録する方法を紹介しました。
基本的な内容でしたが、参考になれば幸いです。
Discussion