AWS Lambda LayersのNode.jsでの使い方

AWS Lambda LayersをNode.jsで使う方法をお伝えします。

細かい制約事項はAWS Documentに載っていますので参考にしてください。

https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/configuration-layers.html

docs.aws.amazon.com

今回作成する全体構成は次のようになります。

AWS Lambda LayersをNode.jsで使う方法

カッコ内は今回作成する関数の名前です。

 

Layer作成

まずLayerを作成します。

ローカルPC上の適当な所に下記のソースファイルを作成してください。

 

XpYamaLayer.js

module.exports = {
    getHello: () => {
        return 'hello';
    }
};

 

XpYamaLayer.jsをzipファイルに圧縮します(zipのファイル名は何でも大丈夫です)。

 

jsをzipファイルに圧縮

 

Layerのアップロード

AWS管理コンソールに入りLambdaの管理画面を開きます。

画面左のメニューに「Layers」という項目があるので開いてください。

Lambdaの管理画面

 

「レイヤーの作成」ボタンからレイヤーの作成画面を開き、先ほど作成したzipファイルをアップロードします。

 

レイヤーの作成

 

「互換性のあるランタイム」は「Node.js 8.10」を選択しておいてください。

 

「作成」ボタンを押してLayerの作成は完了です。

 

Layerの作成  

Lambdaの作成

node.js 8.10でLamda関数を作成します。

 

node.js 8.10でLamda関数を作成

 

node.js 8.10でLamda関数を作成

 

「Layers」の「レイヤーの追加」を押します。

 

レイヤーの追加

 

先ほど作成したLayerを選択します。

 

Layerを選択  

Layerを選択

 

XpYamaFuncを選択してLambdaのソースを書きます。

 

Lambdaのソースを

 

次のソースを貼り付けてください。

 

var XpYamaLayer = require('/opt/XpYamaLayer');

exports.handler = async (event) => {

    const response = {
        statusCode: 200,
        body: XpYamaLayer.getHello()
    };

    return response;
};

 

短いコードなので説明は省略します。

保存して実行(テスト)してみます。

テストイベントの設定が聞かれますが、イベントの内容は使わないので適当で大丈夫です。

正常に実行できると次のような結果になります。

正常に実行

 

XpYamaFuncの7行目「XpYamaLayer.getHello()」でLayerの関数を呼んでいるのが分かります。

 

最後に

LambdaでDBの接続情報なんかを扱う場合や、何かと共通的な処理が必要になることがあります。

Layerに入れておけば色々な所で参照できて便利なので、どんどん使ってみてください。

 

 

AWS相談会