问题标签 [laravel-vapor]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
laravel - 在 Laravel Vapor 上管理排队作业/数据库连接/性能
我们现在通过 Laravel vapor 在 AWS 无服务器基础设施上运行我们的网站。它在无服务器 Aurora 数据库上运行,并使用 Amazon SQS 作为队列驱动程序。基本上是 Laravel Vapor 部署的默认值。
我们目前遇到了一个性能问题,当我们试图解决它时,我们的头撞到了我们在旅途中遇到的其他墙壁。所以我们开始吧。
我们想做的事
我们的客户可以拥有需要续订的各种类型的订阅。这些订阅有各种风格,可以有不同的计费间隔、不同的货币和不同的价格。
在我们的客户仪表板上,我们希望向他们展示一张漂亮的卡片,告知客户他们即将进行的续订,并很好地估计费用将是多少,这样他们就可以确保他们有足够的积分:
由于我们的订阅有不同的风格,我们有一个表格来保存基本订阅详细信息,例如net_renewal_date
. 它还引用了subscriptionable_id
其中subscriptionable_type
一个与用户可以订阅的不同类型模型的变形关系。
我们的第一次尝试
在我们的第一次尝试中,我们基本上添加了一个 REST 端点来获取即将到来的更新预测。
基本上,在接下来的 30 天里,所有需要续订的订阅都被占用了。对于这些项目中的每一个,我们将以其货币计算当前价格,并添加税收计算。
然后将其返回到我们进一步用于的集合中: 1/ 计算每种货币的总数 2/ 在接下来的 14 天内过滤该集合的项目,并计算每种货币的相同总数。
然后,我们基本上只需将不同的金额转换为我们的基础货币 (EUR) 并返回其总和。
这对我们的绝大多数客户都很有效。即使是拥有 100 个订阅的客户也完全没有问题。
但随后我们将一位较大的客户迁移到了新平台。在接下来的 30 天里,他基本上有 1500 多个订阅更新,所以不太顺利......
我们的第二次尝试 因为通过上面的代码根本无法在可接受的时间内工作,我们决定我们必须将模拟计算转移到一个单独的工作中。
我们在订阅表中添加了一个属性并将其命名为“simulated_renewal_amount”
每次在以下情况下都需要运行此作业: - 价格变化 - 客户的折扣会发生变化(基于他的忠诚度,我们提供单独的价格 - 汇率变化。
所以我们的想法是监听这些变化,然后派出一个作业来重新计算任何相关订阅的模拟量。然而,这意味着例如汇率的变化可以很容易地触发 10,000 个要处理的工作。
这就是它变得棘手的地方。尽管在大多数情况下只运行一个作业只需要不到 1200 毫秒,但似乎调度大量需要为一组订阅执行相同计算的作业会导致作业在中止时运行 60 多秒。
设置这种排队作业的最佳做法是什么?我应该只创建一份工作并按顺序处理它们吗?
任何关于我们如何最好地设置它的见解,都将非常受欢迎。我们已经用它玩了很多,它似乎总是以同样的问题结束。
仅供参考 - 我们将站点托管在 laravel vapor 上,因此在 AWS 基础设施上使用 Aurora 数据库是无服务器的。
laravel - Laravel Vapor CLI 上的身份验证失败
我今天刚刚安装了 Laravel Vapor,很高兴开始使用,但我遇到了来自我的 Mac 身份验证的墙(使用 iTerm)。我输入vapor login
,然后按照Email Address:
and Password:
...的提示进行操作,Authentication failed.
每次都得到。我已经三次检查了我的电子邮件地址,非常小心地输入了密码,检查了大写锁定没有打开,并通过网站更改了我的密码 3 次,然后重新输入以查看它是否更改了任何内容。我不知道我还能做什么!有没有其他人遇到过这个问题??有什么建议么??
laravel - Vapor - 如何增加部署到登台和生产的文件夹大小?
我尝试将我们的代码部署到暂存中,但发现了类似这样的错误消息。
压缩后的应用程序大于 45MB。您的应用程序是 69 MB。哎呀!您的请求存在一些问题。Vapor 应用程序的公共资产不得超过 300 个。
很小 ?????这不够。
laravel - Laravel Vapor 部署,然后无法响应请求
我刚刚使用 Vapor 部署了一个 Laravel 应用程序,并收到以下消息。我不相信我改变了任何东西(一些 html 刀片行)。
缓存 Laravel 配置{"message":"传递给 Symfony\Component\HttpKernel\Exception\HttpException::__construct() 的参数 1 必须是 int 类型,给定字符串,在 /var/task/vendor/laravel/framework/ 中调用src/Illuminate/Foundation/Application.php 在第 1014 行","context":{"exception":{"class":"Symfony\Component\Debug\Exception\FatalThrowableError","message":"参数 1 传递给 Symfony \Component\HttpKernel\Exception\HttpException::__construct() 必须是 int 类型,给定字符串,在 /var/task/vendor/laravel/framework/src/Illuminate/Foundation/Application.php 第 1014 行调用", "code":0,"file":"/var/task/vendor/symfony/http-kernel/Exception/HttpException.php:24"},"aws_request_id":null},"level":400,"level_name":"ERROR","channel":"production","datetime":"2019-09-27T13:18:45.338555+00:00","extra":{}}
该网站现在只显示{"message": "Internal server error"}
我是这样做的,还是这是 Laravel/Vapor 的错误?
laravel - 如何在 Laravel Vapor 应用程序中获取 HTTP 请求的 IP?
我最近将一个 Laravel 应用程序从服务器移到了 Vapor。此应用依赖于使用 记录请求 IP 地址Request::ip()
,但自从切换到 Vapor 后,所有 IP 都记录为 127.0.0.1。
我查看了https://laravel.com/docs/5.6/requests#configuring-trusted-proxies上的 Trusted Proxy 文档,但我们没有设置负载均衡器,因此该解决方案似乎不相关。我怀疑这个 IP 地址来自 Amazon API Gateway。
我们如何在 Vapor 上部署的应用程序中获取传入请求的实际客户端 IP?
下面是我们如何使用 IP 地址的一个最小示例:
css - 如何在 Vue-js 中添加 css 图像背景,以便 Laravel Vapor 可以将 url 重写为正确的 S3/CDN url
我正在尝试将 Laravel + Vue JS 项目部署到 Laravel Vapor。一切都按预期工作,除了我的背景图像,使用 Vue JS 单文件组件中的样式应用。URL 指向我的域/lamba 实例,而不是 Vapor 提供的 cdn。
我现有的风格,适用于我的本地环境是:
当部署到蒸汽图像网址是:https ://damp-pine-l46hzzzbsa5p.vapor-farm-a1.com/images/banner1.jpg
并返回 404,因为它应该是 cdn 的 url。
当我使用基本刀片文件中的图像时,图像 url 按预期重写为:https ://d16wfy3cif7yy.cloudfront.net/e9ce46ed-bf61-4c85-8bd0-b136f1d15a33/images/banner1.jpg 。
我曾尝试关注其他与 vue-js/laravel-mix url 相关的帖子,但都失败了,大多数甚至不允许 npm run 完成而没有错误。
在做了更多研究之后,我似乎错过了蒸汽文档的一部分:https ://docs.vapor.build/1.0/projects/deployments.html#code-splitting-dynamic-imports 讨论动态导入。这显然是这样做的预期方式,而不是让 vapor-cli 进行重写,但是我一辈子都无法让它工作。
我尝试将建议的代码添加到我的 webpack.mix 文件中,但仍然没有运气。图像 URL 仍然指向域,而不是 cdn。
我还关注了许多关于相对与模块资产的教程/堆栈溢出问题,并且遵循其中任何一个都会导致 npm 抛出无法解析图像的错误。
我的 webpack.mix.js 文件:
这是我的 vue-component 没有正确加载图像
作为一名 PHP 开发人员(vue 新手),我在大约 5 分钟内 fork 并编辑了 laravel/vapor-cli 以在编译的 js 中重写这些样式 url。这可行,但似乎有更好的方法,我只是错过了一些东西!任何帮助,将不胜感激。
laravel - 在 laravel vapor signed-storage-url 中使用 Axios 默认值
使用 Tymon jwt 令牌进行身份验证。Laravel 工作正常。
当使用 Laravel vapor 的上传到 S3 代码时,我无法获取签名存储 URL 来使用我的 axios 默认值:
axios.defaults.headers.common["Authorization"] = 'Bearer ' + token;
存储方法如文档中所示:
它在 npm 包的 index.js 中调用它:
也许与 npm 模块不在正确范围内有关。
我已经覆盖了 vapor-core signed-storage-url 控制器来使用令牌,并且可以让它与 Postman 一起工作。它正在调用 Vapor.store ,它不会将令牌添加到 axios 调用中,而且我看不到传递标头的方法。
编辑:您无需注册 Vapor 即可使用这些软件包。
和
laravel - 从 Homestead 运行 Vapor 失败
我在一个全新的 Laravel 中安装了 Vapor。当我尝试运行“蒸汽部署生产”时,我收到此错误:
我成功安装了蒸汽。创建了一个新项目并将域设置保留为默认值。
php - 使用 Laravel Vapor 部署 Web 应用程序时 file_put_contents() 出错
我刚刚将我的 Laravel 应用程序更新到 6.0 以使用新工具 Vapor。但是,在部署过程结束后,当我使用虚 url 访问应用程序时出现此错误:
你对这个错误的原因有什么想法吗?谢谢
laravel - 使用 Laravel Nova 上传大文件
我有一个使用 Vapor 部署的 Laravel 应用程序 (v6.x)。
我正在尝试使用 Laravel Nova 中的表单上传文件。
Nova 提供了多种上传方式,一种使用他们自己的实现以方便使用,另一种是开发人员拥有更多控制权。
标准代码:
和“控制”:
只要文件约为 3MB 或更少,这两种方法都可以。但是,我需要上传大小约为 20~200 MB 的文件。
每当我尝试提交表单时,所有信息都会存储到数据库中,并且不会显示错误。遗憾的是,文件字段没有填写,也没有上传。
我需要做什么才能在 Laravel nova 中上传大文件?