この記事では、「brefを用いてLambda上でLaravelを動作させて、Serverless Frameworkを使ってLambdaにデプロイする方法」について書いています。
前提知識
- brefは、Lambda上でPHP/Laravelを動作させるための設定を行なってくれるライブラリ
- Serverless Frameworkは、サーバレスアプリケーションを簡単に構築するためのツールで、サクッとデプロイすることが可能
serverlessコマンドをインストールする
まずは、serverlessコマンドをインストールします。
$ npm install -g serverless
$ serverless -v
Framework Core: 3.19.0
Plugin: 6.2.2
SDK: 4.3.2
AWS Access Keyを作成する
上記ドキュメントに記載通りに進めていきます。今回は「bref-cli」ユーザーを作成しました。
作成したユーザーの認証情報を保存する
$ serverless config credentials --provider aws --key <key> --secret <secret> --profile bref-cli
これで、認証情報が「.aws/credentials」に書き込まれます。
brefのインストールおよび初期化を行う
brefのインストールを行います。
$ composer require bref/bref
続けて、初期化を行います。
$ vendor/bin/bref init
What kind of lambda do you want to create? (you will be able to add more functions later by editing `serverless.yml`) [Web application]:
[0] Web application
[1] Event-driven function
>
Creating index.php
Creating serverless.yml
[OK] Project initialized and ready to test or deploy.
The files created were automatically added to git.
用途を聞かれますが、特に用途を決めていないのであれば、何も選択せずに「Enter」を押下!
Serverless FrameworkでLambdaのデプロイを行う
いざデプロイを実施!
$ serverless deploy --aws-profile bref-cli
Deploying app to stage dev (us-east-1)
✔ Service deployed to stack app-dev (144s)
endpoint: ANY - https://XXXXXXXXX.amazonaws.com
functions:
api: app-dev-api (17 MB)
これで、エンドポイントに表示されているURLにアクセスすると、index.phpの内容が表示されます。

デプロイが完了し、ファイルが表示されることを確認できたので、今回作成したアプリケーションは削除しておきます。
$ serverless remove --aws-profile bref-cli
Removing app from stage dev (us-east-1)
✔ Service app has been successfully removed (36s)
これで、先ほどのURLにアクセスするとエラーメッセージが表示されます。
コメント