0

0

Laravel Vapor是什么,如何部署无服务器(Serverless)应用

冰火之心

冰火之心

发布时间:2025-11-17 13:47:54

|

167人浏览过

|

来源于php中文网

原创

Laravel Vapor是基于AWS Lambda的无服务器部署平台,支持自动伸缩、CI/CD、HTTPS等,通过vapor.yml配置项目,使用vapor deploy命令部署,适用于API服务等场景,需注意冷启动延迟和执行时间限制。

laravel vapor是什么,如何部署无服务器(serverless)应用

Laravel Vapor 是 Laravel 官方推出的无服务器(Serverless)部署平台,基于 AWS Lambda 和其他 AWS 服务构建。它让开发者可以将 Laravel 应用以无服务器架构的方式快速部署,无需管理传统服务器,自动实现弹性伸缩、高可用和按需计费。

什么是 Laravel Vapor

Laravel Vapor 将传统的 Laravel 应用打包成适合在 AWS Lambda 上运行的形式。它利用以下核心 AWS 服务:

  • AWS Lambda:执行 PHP 请求,按调用次数计费
  • Amazon API Gateway:处理 HTTP 路由与请求分发
  • Amazon S3:存储静态资源和部署包
  • RDS Proxy 或 Aurora Serverless:提供可扩展的数据库支持
  • SQS、SNS、EventBridge:处理队列任务与事件驱动逻辑

Vapor 自动处理环境配置、域名绑定、SSL 证书、CI/CD 流程和回滚机制,极大简化了无服务器部署的复杂性。

如何使用 Laravel Vapor 部署应用

部署一个 Laravel 应用到 Vapor 包含以下几个关键步骤:

1. 准备 Laravel 项目

确保你有一个标准的 Laravel 项目(建议 Laravel 8+),并已安装 Vapor CLI:

composer require laravel/vapor-cli --dev
php artisan vendor:publish --provider="Laravel\Vapor\VaporServiceProvider"

2. 注册并配置 AWS 账户

vapor.laravel.com 注册账号,并连接你的 AWS IAM 用户。Vapor 会引导你创建具有必要权限的角色(如 Lambda、API Gateway、S3 等)。

3. 初始化 Vapor 项目

运行以下命令将当前 Laravel 项目关联到 Vapor:

vapor init

该命令会在项目中生成 vapor.yml 配置文件,定义环境、内存、超时、域名等设置。

CoCo
CoCo

智谱AI推出的首个有记忆的企业自主Agent智能体

下载

4. 配置环境变量和数据库

vapor.yml 中为不同环境(如 staging、production)设置变量:

environments:
  production:
    database: your-aurora-serverless-cluster
    variables:
      APP_ENV: production
      REDIS_HOST: your-elasticache-endpoint
    workers:
      - queue: default
        timeout: 900

敏感信息可通过 Vapor UI 添加加密环境变量。

5. 部署应用

使用一条命令即可部署:

vapor deploy

Vapor 会压缩代码、上传至 S3、创建 Lambda 版本、更新 API Gateway 路由,并通知完成。静态资源(如 CSS、JS)会被推送到 S3 + CloudFront。

部署完成后,Vapor 提供 HTTPS 域名,默认启用 Let's Encrypt 证书。

6. 部署后续任务

  • 队列任务:Vapor 使用 SQS 触发 Lambda 执行队列任务,可在 vapor.yml 中配置 worker 数量和重试策略
  • Cron 任务:通过 schedules 定义定时任务,Vapor 会将其映射为 EventBridge 规则
  • 回滚:若新版本出错,可使用 vapor rollback production 快速回退

适用场景与注意事项

Laravel Vapor 适合中小型 API 服务、后台管理系统、Webhook 接收器等流量波动较大的应用。但要注意:

  • Lambda 冷启动可能导致首请求延迟较高(通常 300ms~1s)
  • 单个请求最长执行时间限制为 15 分钟
  • 临时磁盘空间有限(/tmp 目录约 10GB)
  • 不能运行长期守护进程,需依赖队列处理耗时任务
  • 本地开发调试稍复杂,建议结合 Telescope 和日志分析

基本上就这些。Laravel Vapor 把复杂的 Serverless 架构封装得非常友好,如果你熟悉 Laravel 并希望免运维部署,它是值得尝试的选择。不复杂但容易忽略的是合理设计数据库连接复用和缓存策略,以适应短生命周期的 Lambda 实例。

相关专题

更多
php文件怎么打开
php文件怎么打开

打开php文件步骤:1、选择文本编辑器;2、在选择的文本编辑器中,创建一个新的文件,并将其保存为.php文件;3、在创建的PHP文件中,编写PHP代码;4、要在本地计算机上运行PHP文件,需要设置一个服务器环境;5、安装服务器环境后,需要将PHP文件放入服务器目录中;6、一旦将PHP文件放入服务器目录中,就可以通过浏览器来运行它。

2747

2023.09.01

php怎么取出数组的前几个元素
php怎么取出数组的前几个元素

取出php数组的前几个元素的方法有使用array_slice()函数、使用array_splice()函数、使用循环遍历、使用array_slice()函数和array_values()函数等。本专题为大家提供php数组相关的文章、下载、课程内容,供大家免费下载体验。

1676

2023.10.11

php反序列化失败怎么办
php反序列化失败怎么办

php反序列化失败的解决办法检查序列化数据。检查类定义、检查错误日志、更新PHP版本和应用安全措施等。本专题为大家提供php反序列化相关的文章、下载、课程内容,供大家免费下载体验。

1536

2023.10.11

php怎么连接mssql数据库
php怎么连接mssql数据库

连接方法:1、通过mssql_系列函数;2、通过sqlsrv_系列函数;3、通过odbc方式连接;4、通过PDO方式;5、通过COM方式连接。想了解php怎么连接mssql数据库的详细内容,可以访问下面的文章。

995

2023.10.23

php连接mssql数据库的方法
php连接mssql数据库的方法

php连接mssql数据库的方法有使用PHP的MSSQL扩展、使用PDO等。想了解更多php连接mssql数据库相关内容,可以阅读本专题下面的文章。

1464

2023.10.23

html怎么上传
html怎么上传

html通过使用HTML表单、JavaScript和PHP上传。更多关于html的问题详细请看本专题下面的文章。php中文网欢迎大家前来学习。

1235

2023.11.03

PHP出现乱码怎么解决
PHP出现乱码怎么解决

PHP出现乱码可以通过修改PHP文件头部的字符编码设置、检查PHP文件的编码格式、检查数据库连接设置和检查HTML页面的字符编码设置来解决。更多关于php乱码的问题详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1549

2023.11.09

php文件怎么在手机上打开
php文件怎么在手机上打开

php文件在手机上打开需要在手机上搭建一个能够运行php的服务器环境,并将php文件上传到服务器上。再在手机上的浏览器中输入服务器的IP地址或域名,加上php文件的路径,即可打开php文件并查看其内容。更多关于php相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1307

2023.11.13

html编辑相关教程合集
html编辑相关教程合集

本专题整合了html编辑相关教程合集,阅读专题下面的文章了解更多详细内容。

37

2026.01.21

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Sass 教程
Sass 教程

共14课时 | 0.8万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 3万人学习

CSS教程
CSS教程

共754课时 | 22万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号