⛳
laravelをlambaにデプロイ簡単っていう人の嘘つき!!
めちゃ簡単でした
awsわからなすぎてlambaにデプロイすることすら詰まったので、詰まったこととその解消法を書いていきます。
デプロイに至るまで
https://ma-vericks.com/blog/serverless-laravel-app/
↑こちらの記事のとうりに進めていきました。デプロイまでは進めていけば問題ないのですが、、、
環境
amazon linux 2
laravel 9
デプロイできたのに、、
Fatal error: Composer detected issues in your platform: Your Composer dependencies require a PHP version ">= 8.2.0".
You are running 8.1.27. in /var/task/vendor/composer/platform_check.php on line 24
phpのバージョンが足りてないよっていうエラー。
ああ、終わった、、色々やってましたが一生ハマる、、
解決法
ファイルを以下通りに変更
serverless.yml
service: laravel
provider:
name: aws
region: ap-northeast-1
runtime: provided.al2
environment:
APP_ENV: production
package:
patterns:
- '!node_modules/**'
- '!public/storage'
- '!resources/assets/**'
- '!storage/**'
- '!tests/**'
functions:
web:
handler: public/index.php
# runtime: php-81-fpm ここをコメントアウト
layers:
- ${bref:layer.php-82-fpm}
timeout: 28
events:
- httpApi: '*'
artisan:
handler: artisan
# runtime: php-81-fpm ここをコメントアウト
layers:
- ${bref:layer.php-82-fpm}
timeout: 720
plugins:
- ./vendor/bref/bref
起こっていたこと(多分)
そもそもlambaではlaravel(PHP)はそのまま動かせない(=ランタイムサポート対象外)。
brefっていうAWS Lambda 用の PHP ランタイムを使うことで動いてる。
だからruntimeに直接phpのバージョンを指定してもそんなん知らないってなっていた。(?)
今回のエラーでは8.2以上にしたかったので、brefを使って8.2を指定したら解決した。
自分の予想なので間違っていたら教えてください、、
Discussion