blogですかい

仕事、プライベートで学んだことなどを発信し、その内容がたとえ少数でも誰かの役に立ったらなら、それはとっても嬉しいなって

AWS LambdaでもPHPがしたい!

AWS Lambdaでは基本的に、Node.jsやJava, Pythonを用いて開発をしますが、それらから別の言語の処理系を呼び出して動かすことも可能です。

例えば、PerlスクリプトであればLambdaのコンテナにインストールされているので、このように動かすことができます。

AWS LambdaにはPHPがインストールされていない

ので、PHPを使いたい場合には、PHPのバイナリをスクリプトと一緒にアップロードする必要があります。
AWS LambdaのAmazonLinuxのバージョンは2015.03のようなので、Amazon Linux(2015.03)のEC2インスタンスからphp-5.5.29のCLI SAPIをコピーして使用しました。
このphpの実行には libedit.so.0 が必要なので、併せてアップロードします。

作成したスクリプト

  • Node.jsからscript.shを起動 
  • アップロードしたphpのバイナリを実行可能にする
  • アップロードしたlibedit.so.0のあるディレクトリにライブラリPATHを通す
  • phpスクリプトを実行

アップロードするzipファイルの作成

├── hello.php
├── index.js
├── lib
│   └── libedit.so.0
├── php
└── script.sh

ファイル構成はこのようになっています。

zip -r hello-php.zip hello.php index.js script.sh php lib/libedit.so.0

zipコマンドでまとめます

アップロードして実行

f:id:oh-sky:20151027094204p:plain

アップロード(Lambdaファンクションの作成)

f:id:oh-sky:20151027094215p:plain

実行
Hello world.