AWS Lambdaで標準で利用できるモジュール一覧

More than 1 year has passed since last update.


はじめに

AWS Lambdaではnode_moduleを利用する場合は、モジュールをzip化してアップロードする必要があります。

しかし、一部のモジュールはLambdaで標準的に提供されています。

そこでAWS Lambdaで標準利用できるモジュールを調べて見ました。


npmコマンドでの調査

とりあえず、npmコマンドでモジュール一覧を取得してみようとしましたが

残念ながらnpmコマンドにはパスが届いておらず実行できませんでした。


index.js

var exec = require('child_process').exec;

exports.handler = function(event, context){
exec('npm list', function(err, stdout, stderr){
console.log(stdout);
context.done(err, stdout);
});
};



stdout

{

"errorMessage": "Command failed: /bin/sh: npm: command not found\n",
"errorType": "Error",
"stackTrace": [
"",
"ChildProcess.exithandler (child_process.js:658:15)",
"ChildProcess.emit (events.js:98:17)",
"maybeClose (child_process.js:766:16)",
"Socket.<anonymous> (child_process.js:979:11)",
"Socket.emit (events.js:95:17)",
"Pipe.close (net.js:466:12)"
]
}


lsコマンドでの調査

次にlsコマンドで調べて見ました。

node_modulesフォルダは/usr/libにあったので、その中を確認してみました。


index.js

var exec = require('child_process').exec;

exports.handler = function(event, context){
exec('ls /usr/lib/node_modules', function(err, stdout, stderr){
console.log(stdout);
context.done(err, stdout);
});
};


そしたら、なんとビックリ空っぽでした。どんなモジュールがあるかは秘密なんですね。


requireで調査

そこでrequireを入れて見てシコシコと少しずつ確認していきました。

2016年2月13日現在、以下のモジュールがインストールしているのがわかりました。

余りインストールされているものは多くはないですが、aws-sdkが標準ではいっているので

Lambdaを使って、AWS環境を設定したいというニーズには対応できそうです。

auroraをRDSで採用したので、ぜひともmysqlモジュールは入れて欲しいですね。

あ、あとoauth。


インストールされているもの


  • aws-sdk

  • child_process

  • crypto (2016.3.19 added)

  • fs

  • http

  • https

  • os (2016.10.16 added)

  • querystring (2016.3.7 added)

  • sax (aws-sdk/node_modules/sax)

  • xml2js (aws-sdk/node_modules/xml2js)

  • xmlbuilder (aws-sdk/node_modules/xmlbuilder)


インストールされていないもの


  • express

  • gulp

  • mysql

  • npm

  • oauth