2 Star 1 Fork 1

Serverless Framework / Documentation

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
Laravel 框架迁移.md 3.83 KB
一键复制 编辑 原始数据 按行查看 历史
April 提交于 2020-11-22 03:37 . Add files via upload

通过 Serverless Framework Laravel 组件,可以快速实现 Laravel 应用从本地到 Serverless 函数平台的迁移。

迁移前提

架构说明

Laravel 组件将在腾讯云账号中使用到如下 Serverless 服务:

  • API 网关:API 网关将会接收外部请求并且转发到 SCF 云函数中。
  • SCF 云函数:云函数将承载 Laravel 应用。
  • CAM 访问控制:该组件会创建默认 CAM 角色用于授权访问关联资源。
  • COS 对象存储:为确保上传速度和质量,云函数压缩并上传代码时,会默认将代码包存储在特定命名的 COS 桶中

操作步骤

以下步骤主要针对命令行部署操作,控制台部署请参考控制台部署指南

1. (可选)初始化 Laravel 模版项目

如果您本地并没有 Laravel 项目,可通过以下指令完成 Laravel 项目初始化(本地已有项目可跳过该步骤)

serverless init laravel-starter --name example
cd example

2. 修改 Laravel 项目

由于云函数在执行时,只有 /tmp 可读写的,所以我们需要将 laravel 框架运行时的 storage 目录写到该目录下,为此需要修改 bootstrap/app.php 文件,在 $app = new Illuminate\Foundation\Application 后添加:

$app->useStoragePath(env('APP_STORAGE', '/tmp'));

然后在根目录下的 .env 文件中新增如下配置:

# 视图文件编译路径
VIEW_COMPILED_PATH=/tmp/storage/framework/views

# 由于是无服务函数,所以没法存储 session 在硬盘上,如果不需要 sessions,可以使用 array
# 如果需要你可以将 session 存储到 cookie 或者数据库中
SESSION_DRIVER=array

# 建议将错误日志输出到控制台,方便云端去查看
LOG_CHANNEL=stderr

# 应用的 storage 目录必须为 /tmp
APP_STORAGE=/tmp

3. 配置 yml 文件

在项目根目录下,新建 serverless.yml 文件,并将下列配置模版粘贴到文件中,实现基本的项目配置。

基于您实际部署需要,您可以在 serverless.yml 中完成更多配置,yml 文件的配置信息请参考 Laravel 组件全量配置

touch serverless.yml
# serverless.yml

component: laravel
name: laravelDemo
org: orgDemo
app: appDemo
stage: dev

inputs:
  src: ./
  region: ap-guangzhou
  runtime: Php7
  apigatewayConf:
    protocols:
      - http
      - https
    environment: release

4. 应用部署

通过 sls deploy 命令进行部署,并可以添加 --debug 参数查看部署过程中的信息。

sls deploy --debug

部署完成后,通过访问输出的 API 网关链接,完成对应用的访问。

5. 监控运维

部署完成后,您可以通过访问 Serverless 应用控制台,查看应用的基本信息,监控日志。

1
https://gitee.com/serverless-framework/documentation.git
git@gitee.com:serverless-framework/documentation.git
serverless-framework
documentation
Documentation
main

搜索帮助