Lambda 実行環境と利用できるライブラリを参考に作業します。
EC2インスタンスの起動
東京リージョンでamzn-ami-hvm-2015.09.1.x86_64-gp2(ami-383c1956)を起動
それ以外のリージョンの場合にも適宜対応したAMIを指定して起動します
パッケージのアップデート
Linux カーネルバージョン4.1.27-25.49.amzn1.x86_64なので、yum.confを書き換えてインストールします
/etc/yum.conf
- releasever=latest
+ releasever=2015.09
$ sudo yum update -y
そのままだとインストールするパッケージの依存関係が解消できないので元に戻しておきます
/etc/yum.conf
+ releasever=latest
- releasever=2015.09
node-v4.3.2のインストール
Using Packages and Native nodejs Modules in AWS Lambdaを参考に作業します
terminal
$ sudo yum install gcc44 gcc-c++ libgcc44 cmake –y
$ wget http://nodejs.org/dist/v4.3.2/node-v4.3.2.tar.gz
$ tar zxfv node-v4.3.2.tar.gz
$ cd node-v4.3.2
$ ./configure
$ make
$ sudo make install
$ which node
/usr/local/bin/node
※ 実際のAWS Lambdaでのnodejsのインストール先は「/usr/local/lib64/node-v4.3.x/bin/node」です
デフォルトで入っているであろうyum package/npmのインストール
terminal
$ sudo yum install ImageMagick
$ sudo /usr/local/bin/npm install aws-sdk@2.4.9 -g
$ sudo /usr/local/bin/npm install imagemagick -g
ここまででAWS Lambdaのデフォルト環境に近い環境の構築は完了です。
参考情報
AWS Lambdaの環境変数
env
{
PATH: '/usr/local/lib64/node-v4.3.x/bin:/usr/local/bin:/usr/bin/:/bin',
LAMBDA_TASK_ROOT: '/var/task',
LAMBDA_RUNTIME_DIR: '/var/runtime',
AWS_REGION: 'ap-northeast-1',
AWS_DEFAULT_REGION: 'ap-northeast-1',
AWS_LAMBDA_LOG_GROUP_NAME: '/aws/lambda/oracletest',
AWS_LAMBDA_LOG_STREAM_NAME: '2016/10/04/[$LATEST]bdbfb2ae7782458bbb7c411c1bd33407',
AWS_LAMBDA_FUNCTION_NAME: 'oracletest',
AWS_LAMBDA_FUNCTION_MEMORY_SIZE: '128',
AWS_LAMBDA_FUNCTION_VERSION: '$LATEST',
LANG: 'en_US.UTF-8',
LD_LIBRARY_PATH: '/usr/local/lib64/node-v4.3.x/lib:/lib64:/usr/lib64:/var/runtime:/var/runtime/lib:/var/task:/var/task/lib',
NODE_PATH: '/var/runtime:/var/task:/var/runtime/node_modules',
AWS_ACCESS_KEY_ID: '******',
AWS_SECRET_ACCESS_KEY: '******',
AWS_SESSION_TOKEN: '************' }
AWS Lambdaの実行時のカレントディレクトリ
/var/task