はじめに
この記事に書かれているのは、AWS コンソールで、IAM と S3 bucket を作成した後の手順なので、それ以前の設定はご自身でご自由にしてください。
1. .env を編集
ASSET_URL=https://[S3 のバケット名].s3-ap-northeast-1.amazonaws.com
AWS_ACCESS_KEY_ID=XXXXXXXXXXXXX
AWS_SECRET_ACCESS_KEY=XXXXXXXXXXXXX
AWS_DEFAULT_REGION=ap-northeast-1
AWS_BUCKET= S3 のバケット名
2. Serverless Framework にプラグインインストール
$ sls plugin install -n serverless-s3-sync
3. serverless.yml への記述
plugins:
- ./vendor/bref/bref
- serverless-domain-manager
+ - serverless-s3-sync
custom:
+ s3Sync:
+ # A simple configuration for copying static assets
+ - bucketName: ${self:service.name}-${opt:stage, self:provider.stage}-asset
+ localDir: public # required
+resources:
+ Resources:
+ StaticContentS3:
+ Type: AWS::S3::Bucket
+ Properties:
+ BucketName: ${self:service.name}-${opt:stage, self:provider.stage}-asset
4. s3 と laravel を連携させるパッケージをインストール
$ composer require league/flysystem-aws-s3-v3
これで
Illuminate\Support\Facades\Storage::disk('s3')
で使うことができます。
おわりに
Serverless Framework と laravel での開発にも慣れてきて、記事もまあそれとなく書けるようになってきましたが、まだまだ理解浅いと感じているので、間違いや、不足している部分などありましたら、どんどんコメントしてください!
こちらの記事も読んでみてください。
S3 に アップロードした view ファイルの URL を一時的なものにする。( Severless Framework x Laravel )
https://qiita.com/soma_sekimoto/items/bd16bbc6c2b650af79f9