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

  • 36
    いいね
  • 1
    コメント
この記事は最終更新日から1年以上が経過しています。

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

この投稿は 今年もやるよ!AWS Lambda縛り Advent Calendar 20151日目の記事です。