问题标签 [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 投票
0 回答
397 浏览

serverless - 使用无服务器、Bref PHP 和 Slim 进行 CORS 或 base64 编码的二进制响应

我一直在使用 AWS 设置无服务器(.com)设置,使用Bref(PHP 层)运行MPDF以使用 AWS Lambda 和 API Gateway 将 HTML 转换为 PDF。按照说明,.. 这是设置。

经过大量调试后,看来我可以:

  1. 在无服务器文件中添加apiGateway选项,但我总是遇到 CORS 问题(即经典No 'Access-Control-Allow-Origin' header is present)。我已经尝试了来自客户端/请求端的标头和来自服务器端的响应的每种组合(参见下面的代码)。

  2. 或者,我没有apiGateway选项,如下所示,但是我必须对我的身体进行 base64 编码(请参阅 参考资料$body = base64_encode($pdf);),否则我会收到一个 Bref 错误,说明The Lambda response cannot be encoded to JSON (...) 应该使用这些apiGateway选项。

对正文进行编码很好,但不适用于直接下载,因为我需要data从响应中对它进行 base64decode 以获得二进制数据。

帮助。

serverless.yml :(注意注释掉的 apiGateway 设置 - 阅读更多内容了解原因)

index.php (在上面的yml 文件中提到):

使用 axios 的客户端代码是:

0 投票
0 回答
615 浏览

laravel - 使用 bref 在 laravel 中的 AWS lambda

我使用 bref 包在 laravel 中创建了一个 AWS lambda 项目,我得到以下信息

0 投票
0 回答
274 浏览

laravel-7 - 登录过期后laravel aws serverless 419

我将 Laravel 7 bref 部署到 aws 无服务器。

登录后,laravel 为数据库会话创建 3 个会话,但结果显示

试过用了SESSION_DRIVER=cookie,结果还是一样419 page expired

我在做什么错?

0 投票
1 回答
397 浏览

macos - 无法在本地运行无服务器和 bref 基本示例

我想运行一个无服务器和 bref 示例的基本示例。

我做了什么:

  1. npm install -g 无服务器
  2. 作曲家需要 bref/bref
  3. 供应商/bin/bref 初始化
  4. 无服务器调用本地 -f hello --docker

我收到此错误:

无服务器.yml

我在 MacOs Catalina 上工作。

0 投票
2 回答
896 浏览

laravel - 使用 Bref Laravel Lambda 函数从 S3 执行 Listobjects 时出错

我正在尝试通过调用使用 Bref 无服务器包实现为 Lambda 函数的 API 来将我的资产存储在 S3 中。我正在使用 Laravel。Storage::directories();发出以下错误的调用。

消息:在“https://calmed-storage.s3.us-west-2.amazonaws.com/?prefix=&delimiter=%2F&encoding-type=url”上执行“ListObjects”时出错;AWS HTTP 错误:客户端错误:GET https://mys3-storage.s3.us-west-2.amazonaws.com/?prefix=&delimiter=%2F&encoding-type=url导致403 Forbidden响应:您提供的 AWS 访问密钥 ID(截断...) InvalidAccessKeyId(客户端):您提供的 AWS 访问密钥 ID 不存在于我们的记录中。- InvalidAccessKeyId 您提供的 AWS 访问密钥 ID 在我们的记录中不存在。

0 投票
1 回答
644 浏览

laravel - 在 AWS Serverless 平台上部署 Laravel (laravel-mix) 应用程序

我正在尝试在 AWS 无服务器平台上部署我的 Laravel 应用程序,我在 laravel-mix 中使用动态导入和代码拆分来编译资产,执行此操作我按照bref 包文档中的步骤安装了所需的库按照指示,我还将我的公共目录与我的 s3 存储桶同步

并将我的.env文件配置为:

接下来,我将blade文件配置为:

我的webpack.mix.js文件有:

由于我将代码拆分为块,因此在获取块时遇到了麻烦,我的初始app.js文件从 s3 存储桶加载,但为了加载块,它尝试通过公共目录获取。

控制台错误

如何配置我laravel-mix从与我的公共目录同步的 s3 存储桶加载块?

编辑:

正如答案中所建议的,我更改了我的 serverless.yml ,它看起来像这样:

现在我得到:

发生错误:ArtisanLambdaFunction - 属性变量的值必须是具有字符串(或简单类型)属性的对象。

编辑2:

问题在于 serverless.yml 中的 indent(tab) 配置:

但现在得到单独的问题:

在此处输入图像描述

错误:CloudFormation 模板无效:模板错误:每个 Fn::GetAtt 对象都需要两个非空参数,即资源名称和资源属性

0 投票
0 回答
83 浏览

php - 如何修复 Bref serverless deploy not enough memory 错误?

我在 vagrant box 中使用 Ubuntu 16.04 本地服务器。我Laravel 8用作我的框架。当我使用bref.sh将我的代码部署到无服务器时,它会弹出以下错误

我该怎么办这个错误?

0 投票
1 回答
107 浏览

cakephp - CakePHP - Router::url() 生成相对于当前页面的 url

我正在尝试用 CakePHP 3.8Router::url()方法替换我的所有静态路由。

manage/lender-products/read/2在我的本地环境中,当从路由访问以下代码时,我会/manage/lenders从以下代码中获得预期结果:

但是,在生产(bref.sh/AWS Lambda/PHP 7.4)中,我得到了/manage/lender-products/read/manage/lenders.

看来,在我的生产环境中,正在生成 URL,并在最终结果中包含当前页面 url。

0 投票
0 回答
89 浏览

php - AWS Lambda 通过 AWS-PHP-SDK 发送短信不起作用

问题描述:

我无法从 AWS Lambda 发送 SMS。

控制器代码

错误信息:

via web
{"message": "Internal server error"}
任务在 28.00 秒后超时

通过工匠
任务在 120.00 秒后超时

设置

使用 bref/laravel-bridge
IAM 用户在 AWS Lambda 上运行该应用程序的 Laravel 应用程序已创建。在本地一切正常。除了发送短信外,在线一切正常。

尝试过的解决方案:

尝试了以下软件包。

https://github.com/aws/aws-sdk-php

https://github.com/aws/aws-sdk-php-laravel

以下所有描述的方法都在 AWS Lambda 上本地工作,但不是。
将 AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY 直接写入 config/aws.php
直接在代码中写入 AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY

授予所有 IAM 用户完全的管理员访问权限也不起作用。

在本地,所有替代解决方案也一直有效!

有谁知道这个问题并有解决方案?超过 24 小时,我一直在寻找一种方法。我的最后一种方法是通过 CURL 重建完整的调用并尝试一下,但我希望有人有/找到解决方案。

0 投票
2 回答
91 浏览

error-handling - 用 bref 编写的 SQS 工作人员如何发出重试信号?

在设置batchSize: 1了worker应该如何指示成功以及它应该如何指示临时失败/请求重试之后?我读了https://docs.aws.amazon.com/lambda/latest/dg/invocation-retries.html但它显然没有涵盖自定义运行时,而且根本不清楚发生了什么,也没有谈论无论如何,SQS。我怀疑仅仅抛出一个异常可能就足够了,但我无法对 Lambda 发出的信号做出正面或反面

像https://medium.com/cs-code/setup-queue-with-serverless-laravel-using-bref-92b2cd803bb7这样的教程没有提到这一点。它讨论maxReceiveCount: 3但不讨论如何让 SQS 稍后重试。