LoginSignup
5
4

More than 5 years have passed since last update.

AWS Lambda (Node.js-v4.3.2)の実行環境に近いEC2環境の構築

Posted at

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

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4