AWS Lambdaのレイヤーを使ってnode_modulesとLambdaを分離する方法

AWS Lambdaのレイヤーを使ってnode_modulesとLambdaを分離する方法

Lambdaにレイヤーという機能が追加されていました。

AWS Lambda レイヤー

/opt配下からレイヤーが使えるようです。ちなみに/tmpも使えます。

レイヤーは共通ライブラリなどを作成しておいて、全てのLambdaから/opt配下のレイヤーを呼び出せるといった感じでしょうか。

Layerはローカル環境で作成してzip圧縮してLayerに上げるかS3から上げるかのどちらかしか現時点ではないようです。いずれエディタが出てきそうです。

ローカル環境でLayer.jsというファイルを作成して7zipなどで圧縮してからアップロードします。

Layer.js

AWS Lambdaのレイヤーを使ってみる

こんなデザイナーになりますのでLayerをクリックします。

レイヤーが表示されるので「レイヤーの追加」をクリックします。

AWS Lambdaのレイヤーを使ってみる

レイヤーを選択し、「追加」をクリックします。

AWS Lambdaのレイヤーを使ってみる

Lambdaでレイヤーを読み込みます。

こんな感じで使えます。最大5つのレイヤーが使えるようです。

node_modulesとLambdaを分離する

/opt配下にレイヤーが配置されるので、node_modulesをレイヤーにして、Lambdaと分離することができます。

pathが通っているので、nodejsというフォルダでlayerを作成する必要があるようです。

node.jsのpath
nodejs/node_modules
nodejs/node8/node_modules

このようにnode_modulesをレイヤーにすることによってLambdaのサイズが小さくすることができます。Lambdaのサイズが大きくなるとマネジメントコンソール上での編集が不可になったり、zip圧縮してもデプロイできなくなったりするので、Lambdaは軽いサイズにしておくほうが良いです。

スポンサーリンク
  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存
スポンサーリンク

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA