AWS lambdaでnmp関連のライブラリやモジュールを使用するときのやり方

AWS lambdaでnmp関連のライブラリやモジュールを使用するときのやり方

前提条件

node.jsのバージョンでlambda関数が作成されていること。

ローカルの環境にnpmがインストールされていること。

手順概要

  1. 使用する予定のnpmライブラリをローカルPCにインストール
    • フォルダ名などが結構重要で、適当につけると後で使うのが大変になります!
  2. インストールしたnpmライブラリをフォルダ全体でzip化
  3. zimp化したフォルダを、lambdaにアップロードして、lambda layerを追加する
    • lambda layerというと、難しそうに聞こえますが、簡単です!
    • 事前に使いたいライブラリなどを、登録してあげて、lambdaで使えるようにしてあげるということです。
  4. lambda関数から、npmライブラリを呼び出す

使用する予定のnpmライブラリをローカルPCにインストール

まずは使用予定のnpmライブラリをローカルPCにインストールします。

最初にnodejsというフォルダをどこでも良いので作成してください。

MEMO
この名前が結構重要で、lambdaを使用するときに、デフォルトでAWS lambdaがライブラリを探しに行く場所というのが決まってまして、その名前になります。

続いて、nodejsの中に入って、以下のコマンドを実行します。

ターミナル #nodejsのフォルダの中で実行
$ npm install pg

すると、node_modulesなどが作られます。

これで必要なライブラリをインストールできました。

インストールしたnpmライブラリをフォルダ全体でzip化

今度はインストールしたらライブラリをzip化します。

以下のようなコマンドでnodejsのフォルダごとzip化してください。

ターミナル #nodejsがあるフォルダ
$ zip -r nodejs.zip .

zimp化したフォルダを、lambdaにアップロードして、lambda layerを追加する

以下のサイトがすごくわかりやすいです。

先程のzipファイルをlambda layerに追加する部分を行います。

AWS Lambda Layersでnode_modulesを使う

lambda関数から、npmライブラリを呼び出す

あとは、lambda関数から、npmライブラリが呼び出せるかどうか確認します。

例えば以下のような感じです。

コード
const { Client } = require('pg');
const client = new Client();
console.log(client);

ちゃんとrequireが使えているかどうかを確認していきます。

以上です!

Leave a Reply

Your email address will not be published.

CAPTCHA