问题标签 [bref]

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.

0 投票
1 回答
168 浏览

php - 如何在 PHP 中计算 AWS 签名?

我正在 bref 中编写一个 webhook,并希望它向 SQS 发送消息。为此使用整个 AWS 开发工具包是一种巨大的浪费。我如何计算签名?

0 投票
1 回答
147 浏览

php - 将 Bref Lambda 自定义运行时与 AWS CDK 一起使用时出现错误 libncurses.so.6

我正在尝试使用 AWS CDK 而不是 Serverless 在 AWS Lambda 中使用 Bref 自定义运行时。

CDK 代码如下所示。

这是完整的源代码https://github.com/petrabarus/cdk-bref-function

当我尝试使用 AWS CLI 手动调用时aws lambda invoke --function-name arn:blabla,它显示错误。

Cloudwatch 日志显示类似这样的内容。

如果我将部署与无服务器框架进行比较,配置(层、代码等)几乎相同。我错过了什么?

0 投票
1 回答
302 浏览

php - 带有 Neos CMS 的 AWS Lambda 的 bref.sh php 容器

我正在努力让 Neos(基于 php 的 cms)在 AWS Lambda 的 docker 容器中运行。我想我在某个地方有误会,希望有人能提供帮助。

到目前为止我做了什么:

  1. 我调整了 Neos,以便将所有缓存文件写入 tmp 文件夹
  2. 我将 bref 和 extra-php-extensions 包添加到 composer.json
  3. 我创建了一个 docker 文件,非常简单,如 Mattheu Naploli 的博客文章所示:https ://mnapoli.fr/aws-lambda-php-docker-containers/
  4. 我创建了一个 cloudformation 模板来使用sam local start-api

Dockerfile:

模板.yml

的回应sam local start-api

我不明白的是,我希望总是返回一个有效的 json,即使 php 提供了 5xx 错误。我迷路了......即使情况并非如此,我该如何调试问题?

最后,我必须创建自己的 docker 镜像,因为 Neos 太大而无法使用 bref 层,我需要相当多的 php 扩展。如果我能理解当前的问题,我可以解决这个问题并为每个人提供一个工作容器。

我还有几个问题,在这种情况下,我是否有一个 Web 应用程序并使用容器,我是否必须使用 composer 安装 bref 包?这在博客文章中并不清楚。我还必须在 serverless/sam 中设置处理程序吗?如果是这样,这将是正确的字符串,因为那Web/index.php是 Neos 中的路径?

总的来说,Neos 在 AWS 中会非常出色。我的设置是:

  1. CloudFront 具有从 S3 和其他一切到 lambda 的静态文件的行为
  2. Redis 存储来自 Neos 的缓存文件
  3. ElasticSearch 用于网站搜索并提高大型网站的性能

一旦这工作正常,我将免费为 Neos 社区发布所有信息以使其正常工作。

希望有人可以帮助...

谢谢!

0 投票
1 回答
181 浏览

laravel - 发生错误:ArtisanLambdaFunction - 解压后的大小必须小于 220606645 字节(服务:Lambda,状态码:4000

我试图使用 Bref 将我的 Laravel 应用程序部署到 AWS Lambda。我试图排除几乎所有的图像、视频,但我仍然得到

我的 serverless.yml 文件是

我试图从 zip 中排除几乎所有资产。不过,我得到了同样的错误。压缩时,我的应用程序的总大小仅为 119.4 MB。

0 投票
0 回答
281 浏览

php - 如何安装 GD 库?AWS Lambda 上的 Laravel 和 Bref

在 lambda 上的 laravel 中使用 Intervention\Image 时出现以下错误。顺便说一句,它在本地环境中工作。

我必须添加gd。

[2021-08-17 10:37:18] DEV.ERROR:GD 库扩展不适用于此 PHP 安装。{"exception":"[object] (Intervention\Image\Exception\NotSupportedException(code: 0): GD Library extension not available with this PHP installation. at /var/task/vendor/intervention/image/src/Intervention/Image /Gd/Driver.php:19)

我查到的

https://bref.sh/docs/environment/php.html#extensions

https://github.com/brefphp/extra-php-extensions

部署方式

我们正在使用 sls 命令部署到 lambda。

sls 部署--stage dev

根据调查,实施如下

作曲家需要 bref/extra-php-extensions

在 serverless.yml 下面添加

即使添加并部署了上述设置,它们也不会更新。.. 为什么?

环境

  • Laravel 框架 8.33.1
  • PHP 7.4.3
  • 布雷夫
  • 无服务器

如果英语很奇怪,我很抱歉。

0 投票
1 回答
48 浏览

php - Bref PHP 将会话存储在 redis 中但无法读取

我正在尝试使用 redis 作为运行 bref php 的 lambda 会话驱动程序。它按预期写入数据(我可以使用 redis-cli 看到它)并存储在 $_SERVER 上,但是当您刷新页面时,会话为空。我没有使用框架,只是纯 php。

这是当前的行为:

  • 浏览器 cookie 正确(名称 PHPSESSID 和与 redis 中相同的 id)
  • var_dump($_COOKIE) 显示预期信息
  • session_start() 返回真
  • var_dump($_SESSION) 刷新后为空
  • var_dump(ini_get("session.save_handler")) 显示正确的值
  • var_dump(ini_get("session.save_path")) 显示正确的值
  • 我可以在 redis-cli 实时监视器上看到 php 正在获取正确的密钥

这是我的serverless.yml相关部分:

我的 php/conf.d/php.ini:

它似乎被应用了,因为这是我的 phpinfo() 输出:

我不知道我是否缺少任何配置。有谁看到出了什么问题?

0 投票
1 回答
123 浏览

laravel - Laravel 使用 Lambda 迁移到 AWS RDS

我正在寻找LaravelAWS Lambda. 该应用程序需要PostgreSQL数据库访问权限。

这个想法是Bref用来部署在 AWS Lambda 上的。我手动创建了一个 RDS PostgreSQL 数据库并更新了入站规则并将连接参数添加到应用程序中的 .env 文件和 serverless.yml 模板中。

部署应用程序后,我收到错误消息SQLSTATE[42P01]: Undefined table。我相信问题是没有发生迁移。那么问题来了,如何从 Laravel/Lambda 迁移到 RDS?我应该使用工匠和 CLI 吗?或者有一种方法可以创建一种自动化的迁移方式?

谢谢

0 投票
0 回答
34 浏览

aws-lambda - Lambda、Bref 和 Symfony:命令不显示

我正在使用 Bref 和 Symfony 在 AWS Lambda 中制作控制台应用程序。

我在本地开发了两个命令,这些都是可用的。

接下来,我按照教程https://bref.sh/docs/runtimes/console.html将 lambda 函数部署到 AWS,但是当我运行 lambda 函数时,我的命令没有出现。

我的 serverless.yml 文件:

有人可以帮助我吗?

谢谢。

0 投票
0 回答
110 浏览

laravel - 错误 AWS SQS POST 作业,在无服务器上使用 Laravel

我有一个连接到AWS Lambda服务的无服务器Laravel api,它尝试按照 Laravel 文档的建议(https://laravel.com/docs/7.x/queues#dispatching-jobs)做一个简单的工作

我的 ProcessPodcast 作业尝试使用SQS服务,但返回错误。

我有这个错误返回:

我的无服务.yml:

obs: 我的 serverless 正在运行,没有任何错误,我可以正常访问公共页面...

0 投票
0 回答
37 浏览

php - 在 LocalStack Lambda 上使用 Bref 运行 PHP-FPM

我正在尝试在 LocalStack (AWS Lambda) 上运行 (Symfony) PHP 应用程序。根据 Bref 文档的建议,我使用 ${bref:layer.php-81-fpm} 层。调用函数失败,LocalStack 日志显示:

ALERT: [pool default] 用户尚未定义

这导致了 Bref 的 PHP-FPM 配置,其中用户 nobody 配置为默认池。该用户存在于 LocalStack docker 镜像中,但我猜测它不存在于 LocalStack 的 lambda 执行器镜像中(当使用非 FPM PHP 时,它是在 root 下调用的)。反对这种假设的是,设置 LAMBDA_EXECUTOR=local 时错误消息是相同的,但我对 LocalStack 太陌生,无法确定到底发生了什么。

所以我的问题是如何解决这个问题。也许我可以破解 Bref 的 PHP 配置并切换到 root。但我更喜欢调整 LocalStack,以便 Bref 可以配置为与生产中的相同(尤其是不作为 root)。也许可以更改 Lambda 执行者用户?我没有找到任何关于它的东西。

顺便说一句,在真实的 AWS 环境中,一切都按预期工作。

在 Docker 中使用 LocalStack 0.13.3,Bref 1.5.2 和 PHP 8.1 层。

感谢帮助!