问题标签 [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.
serverless - 使用无服务器、Bref PHP 和 Slim 进行 CORS 或 base64 编码的二进制响应
我一直在使用 AWS 设置无服务器(.com)设置,使用Bref(PHP 层)运行MPDF以使用 AWS Lambda 和 API Gateway 将 HTML 转换为 PDF。按照说明,.. 这是设置。
经过大量调试后,看来我可以:
在无服务器文件中添加
apiGateway
选项,但我总是遇到 CORS 问题(即经典No 'Access-Control-Allow-Origin' header is present
)。我已经尝试了来自客户端/请求端的标头和来自服务器端的响应的每种组合(参见下面的代码)。或者,我没有
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 的客户端代码是:
laravel - 使用 bref 在 laravel 中的 AWS lambda
我使用 bref 包在 laravel 中创建了一个 AWS lambda 项目,我得到以下信息
laravel-7 - 登录过期后laravel aws serverless 419
我将 Laravel 7 bref 部署到 aws 无服务器。
登录后,laravel 为数据库会话创建 3 个会话,但结果显示
试过用了SESSION_DRIVER=cookie
,结果还是一样419 page expired
。
我在做什么错?
macos - 无法在本地运行无服务器和 bref 基本示例
我想运行一个无服务器和 bref 示例的基本示例。
我做了什么:
- npm install -g 无服务器
- 作曲家需要 bref/bref
- 供应商/bin/bref 初始化
- 无服务器调用本地 -f hello --docker
我收到此错误:
无服务器.yml
我在 MacOs Catalina 上工作。
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 在我们的记录中不存在。
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 对象都需要两个非空参数,即资源名称和资源属性
php - 如何修复 Bref serverless deploy not enough memory 错误?
我在 vagrant box 中使用 Ubuntu 16.04 本地服务器。我Laravel 8
用作我的框架。当我使用bref.sh
将我的代码部署到无服务器时,它会弹出以下错误
我该怎么办这个错误?
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。
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 重建完整的调用并尝试一下,但我希望有人有/找到解决方案。
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 稍后重试。