#🔶 Lambda関数にNode.jsモジュールを追加
Lambda関数にNode.jsのソースを書く際、Node.jsモジュールを追加する必要がある場合、追加方法が2つあります。
1つは、Linux環境上でNode.jsプログラムのデプロイパッケージを作成する方法。
Lambda関数はLinux環境で動作しているので、Linux向けにコンパイルされたNode.jsモジュールでないと、動作しない事があります。
そのため、例えば以下のような手順を行う必要があります。
- EC2でLinux環境を用意
- そこにLambda関数として書いたNode.jsソースをダウンロード
- 必要なNode.jsモジュールを追加して、zipファイルにまとめてデプロイパッケージを作成
- Lambdaにアップロード
正直、非常に煩雑です。
もう1つは、AWS Cloud9でデプロイパッケージを作成する方法です。
AWS Cloud9
https://aws.amazon.com/jp/cloud9/
こちらは、Lambdaにも対応している、AWSで用意されたIDEです。
IDEで、Node.jsモジュールを追加して、Lambdaにデプロイするだけなので、非常に簡単です。
#🔶 AWS Cloud9でNode.jsモジュールを追加
今回は、東京リージョンに作ったLambda関数に、Node.jsモジュールを追加する例で説明します。
##🔷 AWS Cloud9の準備
AWS Cloud9から、以下の[AWS Cloud9の使用を開始する]ボタンをクリックします。
2019/3/4現在、東京リージョンは無いので、今回はシンガポールリージョンを選択します。
[Create enviroment]ボタンをクリックして、設定を開始します。
任意のワークスペース名と、説明を記入して、[Next step]ボタンをクリックします。
AWS Cloud9は、ソースの実行と保存に、EC2環境を使うので、EC2インスタンスの設定をします。
今回は小規模開発なので、特に変更せず、[Next step]ボタンをクリックします。
確認画面が出るので、[Create enviroment]ボタンをクリックします。
##🔷 AWS Cloud9にLambda関数をインポート
まずは、東京リージョンのLambda関数を呼べるように設定します。
[AWS Cloud9]-[Preferences]を選択。
[Region]-[AWS Region]で、[Asis Pacific(Tokyo)]を選択。
画面右端の[AWS Resources]を選択すると、東京リージョンのLambda関数「testLambda」プロジェクトが表示されます。
「testLambda」プロジェクトをダブルクリックして、関数をインポートを開始します。
##🔷 Lambda関数にNode.jsモジュールのインストール
次に、Node.jsモジュールのインストールを行います。
今回は、npm install soap
を実行します。
「node_modules」フォルダが作られたら完了です。
##🔷 Lambdaプロジェクトに更新ファイルをデプロイ
「testLambda」プロジェクトに「package.json」ファイルと、「node_modules」フォルダを移動させます。
[AWS Resources]を選択して、↑アイコンをクリックしてデプロイを開始します。
Lambdaで「testLambda」プロジェクトを確認すると、更新内容が反映しています。
#🔶 まとめ
このように、AWS Cloud9を使えば、Node.jsモジュールを簡単にインストールできます。
また、IDEなので、このままLambda関数の開発も行えます。
#🔶 参考
Node.js の Lambda デプロイパッケージを作成するには、どうすればよいですか?
AWS Cloud9のLambdaデプロイ先を東京リージョンに変更する方法