Laravel의 서버리스 라이브러리 bref를 사용하여 lambda에서 hello world

2021/02/24 현재는 컨테이너에서 lambda에 할 수 있게 되고 있는 것 외, 그 외 많은 순서도 베터한 것이 있어, 리라이트 했습니다.
이 기사가 아니라 여기를 참조하십시오.
htps : // 코 m / 우미 히코 / ms / 514cf792d30bf3706에 f5

프로젝트를 만든 후 조금 손을 추가하면 Laravel의 서버리스화가 가능했습니다.
AWS의 배포는 Serverless Framework가 모두 제공합니다.

본가의 문서는 이쪽
Github은 여기
composer create-project --prefer-dist laravel/laravel laravel-demo #プロジェクト作成
cd laravel-demo
composer require bref/bref #肝のbrefインストール

다음 편집을 추가합니다. b508b15

.env
- SESSION_DRIVER=file
+ SESSION_DRIVER=array
+ VIEW_COMPILED_PATH=/tmp/storage/framework/views

config/logging.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를 추가합니다. 007fb31

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:clearsls deploy의 집합입니다.
다음 출력이 되었습니다.
$ php artisan config:clear
Configuration cache cleared!

$ sls deploy
Serverless: Packaging service...
Serverless: Excluding development dependencies...
Serverless: Creating Stack...
Serverless: Checking Stack create progress...
........
Serverless: Stack create finished...
Serverless: Uploading CloudFormation file to S3...
Serverless: Uploading artifacts...
Serverless: Uploading service laravel-demo.zip file to S3 (14.19 MB)...
Serverless: Validating template...
Serverless: Updating Stack...
Serverless: Checking Stack update progress...
.................................
Serverless: Stack update finished...
Service Information
service: laravel-demo
stage: dev
region: ap-northeast-1
stack: laravel-demo-dev
resources: 12
api keys:
  None
endpoints:
  ANY - https://td3rzowchc.execute-api.ap-northeast-1.amazonaws.com/dev
  ANY - https://td3rzowchc.execute-api.ap-northeast-1.amazonaws.com/dev/{proxy+}
functions:
  website: laravel-demo-dev-website
layers:
  None
Serverless: Run the "serverless" command to setup monitoring, troubleshooting and testing.



바로 https://td3r wchc. 네, 아빠. 아 p의 r ぇ아 st-1. 아마조나 ws. 이 m /에서 v 를 방문해 봅시다.


이상입니다. 이하의 과제에 대해서도 기사 투고 예정입니다.
  • URL에 있는 스테이지 경로를 제거할 수 없기 때문에 문제가 많기 때문에 맞춤 도메인 도입
  • 기본 인증 부여
  • public 부하가 참조되지 않고 js와 css를 참조할 수 없다.
  • sls 명령과 동기화하여 .env를 환경별로 구분하고 싶습니다.
  • 세션 포함 DB 연결을 원하지만 서버리스는 연결 풀 문제가 있습니다.
  • 좋은 웹페이지 즐겨찾기