Posted at

AWS LambdaでPHPなどを動かした話

More than 3 years have passed since last update.

Node.js, Java, Python以外の言語(主にPHP)をAWS Lambdaで動かしたかった。

やったことのまとめ。


Perlを動かした話

http://oh-sky.hatenablog.com/entry/2015/10/19/010516

AWS Lambdaの環境(Amazon Linux)にはPerlがインストールされている。

Lambda関数からperlコマンドを叩けば、perlのスクリプトを実行できる。

perlの他にも、インストールされているいろいろなコマンドを実行できる。


PHP CLIを動かした話

AWS Lambdaの環境にはPHPはインストールされていない。

でもPHPerなのでPHPを動かしたかった。

Linux用にコンパイルしたPHPコマンドをアップロードすれば、PHPが使用できる。

必要な共有ライブラリがAWS Lambdaの環境にない場合は、アップロードしてライブラリPATHを通す必要がある。

同様の方法で、AWS Lambdaにインストールされていないコマンドを実行することが可能。


PHP Webアプリケーションを動かした話

処理の流れ

API Gatewayでリクエストを受ける

→ AWS LambdaはPHPコマンドでbuilt-in serverを起動

→ curlコマンドでbuilt-in serverにアクセス

→ 出力されたHTMLをAPI Gatewayで返す

built-in serverの起動、built-in serverへのリクエスト・レスポンスに時間がかかり、トータルで結構待たされる。

実用的ではない。


まとめ

Node.js, Java, Pythonをあまり知らなくても、好きな言語で書けば良い。

AWS Lambdaの内部環境が変わる可能性はあるはず。自分でコンパイルしたプログラムを動かす場合、必要な共有ライブラリが無くなるなどの理由で、突然動かなくなることがあるかもしれない。