LoginSignup
1
0

More than 3 years have passed since last update.

laravelのbref を利用し、lambda にデプロイする

Posted at

はじめに

laravelで制作したアプリをサーバーレス用ライブラリbrefを使い、AWSにデプロイしました。デプロイは、serverless frameworkがやってくれます。

ちなみに、参考にした先輩の記事はこちら。

Laravelのサーバレス用ライブラリbrefを使い、lambdaでhello world
PHP

https://qiita.com/umihico/items/64fcf159f68ebd866170

アプリ作成とbrefインストール

$ composer create-project --prefer-dist laravel/laravel laravel-demo #プロジェクト作成
$ cd laravel-demo
$ composer require bref/bref #肝のbrefインストール

編集するファイル

.env

- SESSION_DRIVER=file
+ SESSION_DRIVER=array
+ VIEW_COMPILED_PATH=/tmp/storage/framework/views
config/logginf.php
        'stack' => [
             'driver' => 'stack',
-            'channels' => ['single'],  # <= 削除
+            'channels' => ['stderr'],  # <= 挿入
             'ignore_exceptions' => false,
         ],
app/Providers/AppServiceProvider.php

     public function boot()
     {
-        //
+        if (!is_dir(config('view.compiled'))) {  
+            mkdir(config('view.compiled'), 0755, true);
+        }
     }
 }

serverless.ymlの編集

serverless.yml

service: laravel-demo

provider:
  name: aws
  region: ap-northeast-1
  runtime: provided

plugins:
  - ./vendor/bref/bref

package:
  exclude:
    - node_modules/**
    - public/storage
    - storage/**
    - tests/**

functions:
  website:
    handler: public/index.php
    timeout: 28 # in seconds (API Gateway has a timeout of 29 seconds)
    layers:
      - ${bref:layer.php-73-fpm}
    events:
      - http: 'ANY /'
      - http: 'ANY /{proxy+}'
  artisan:
    handler: artisan
    timeout: 120 # in seconds
    layers:
      - ${bref:layer.php-73} # PHP
      - ${bref:layer.console} # The "console" layer

artisanコマンド用関数は、ローカルでしか実行しないならコメントアウトしても構いません。

デプロイ

デプロイコマンドを叩く前に、必ずphp artisan config:clearしましょう。

$ php artisan config:clear
Configuration cache cleared!
$ sls deploy

これで完了です!

おわりに

サーバーレスフレームワークを利用すれば、サーバーを持つ必要がなく、サーバー代もかなり節約できるので、おすすめです。

参考記事

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0