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コマンドでまとめます
アップロードして実行
アップロード(Lambdaファンクションの作成)
実行
Hello world.