Web制作・開発会社 プレスマンのスタッフブログ

PRESSMAN*Tech

AWS Lambda で PHP を動かす (SAM 不使用で)

もう百番煎じか千番煎じくらいになっているであろう、Lambda で PHP を動かしてみるネタです。

関数の作成

ランタイムを「関数コードまたはレイヤーでカスタムランタイムを使用」を選択する以外は Node.js とか Python とかを動かすときと変わらないです。

レイヤーの追加

関数を作成したら、Designer 欄の「Layers」をクリックします。すると下に参照されるレイヤー欄が表示されるので、「レイヤーの追加」をクリックします。

「レイヤーバージョンARNを提供」を選択すると表示されるテキストボックスに「 arn:aws:lambda:ap-northeast-1:887080169480:layer:php71:5 」と入力します。

入力が完了したら「完了」してください。

ソースコードのアップロード

今回は phpinfo() してみます。書くまでも無いでしょうが、下記の内容で info.php というファイルを作成します。

<?php phpinfo();

完成したら ZIP 化します。これをアップロードします。
また、ハンドラはファイル名と同じにします(今回の場合だと info.php) 。ココが Node.js や Python の場合と異なる点なので注意してください。

右上の「保存」をクリックしたら完成です。

テスト実行する

Amazon API Gateway からのアクセスが前提になっているのでイベントテンプレート「Amazon API Gateway AWS Proxy」を元にしたテストイベントを作成しておきます。

テスト実行すると、下記のようになりました。

実行結果の項目 body をコピーして HTML ファイルに貼り付けてブラウザで見るとこちらの画像のようになりました。
ちゃんと動いてるっぽいですね。

参考

PHP Layer For AWS Lambda