问题标签 [serverless-plugins]

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 投票
5 回答
12783 浏览

amazon-web-services - 如何从 AWS Lambda 函数 + 无服务器框架的 URL 中删除阶段?

我正在使用无服务器框架在 AWS Lambda 中部署函数,但我找不到从创建的 URL 端点中删除阶段说明符的位置/方式。文档似乎没有涵盖这部分。

例如,这是我的serverless.yml(省略了不相关的部分):

a 之后serverless deploy,返回如下服务信息:

请注意/devURL 端点中的部分,以及函数中的部分。这是配置文件dev中参数的默认值。stage

stage: somethingserverless.yml文件中指定将/something在 URL 中作为后缀,并作为函数的一部分。

问题:如何从生成的 URL 端点中删除阶段规范,或者:如何防止该阶段规范成为生成的 URL 的一部分?

(阶段是函数的一部分,这很好。这将很容易在 AWS Lambda 仪表板中分离staging和函数。)production

0 投票
2 回答
3144 浏览

amazon-web-services - 带有可选字段的 serverless-aws-documentation 模型定义?

我想定义请求和响应模型。我将无服务器框架与 AWS 一起使用,我看到的所有内容都建议使用serverless-aws-documentation

自述文件说我需要在其中加入这一行custom.documentation.models.MODELNAME

但是他们没有models/error.json用作基准的示例文件。

在实际示例serverless.yml中,它们的定义如下:

这没有为我正在尝试做的事情提供足够的细节。


我的目标是为字符串对象数组、消息和状态码定义一个模式。但是,消息和状态代码是可选的。这些也可能是其他模型的一部分,如果可能的话,我不想对每个模型重复它们的定义。

我目前的尝试是:

我认为这会做我想做的事,但我怎么能拥有message并且statusCode是可选的并在我的其他模型中重复这两个项目?

我对可以放入 serverless.yml 文件的 yml 解决方案或可以引用的 json 文件感到满意。

0 投票
1 回答
4894 浏览

amazon-web-services - 无服务器框架 AWS 403 仅域的禁止错误

我正在为一个项目进行无服务器设置并遇到一个奇怪的错误。在我不得不删除旧证书并制作新证书之前,这一切正常。

简而言之,我正在关注 serverless-stack.com 上的教程系列以供参考,并且在运行apig-test命令时出现以下错误。

这对我来说是政策错误。所以我去检查我的策略以确保它允许执行 AuthRole 并且确实如此。我在角色下的 IAM 部分验证了这一点,并查看了我在设置 Cognito 时创建的服务 Auth_Role。

我不想在这里提供过多的信息,但是如果有人对下一步看哪里有任何想法,我将不胜感激,我会在此处提供您想看到的任何细节。

我要注意的一件事是,如果我使用指向 Lambda 函数而不是我的域的直接 URL 运行 apig-test 命令,它工作得非常好。

这证明我的代码没有问题,但更多的是关于我如何设置域的策略设置。

我相应地运行了 sls create_domain ,我看到了 Route53 和 API 网关中的条目,它们在几个小时前已经完成了 40 分钟。自从我消灭了另一个证书后,我就使用正确的证书为其投保了。

我的自定义域过去一直有效,这要归功于我在这里找到的插件和本教程(https://serverless.com/blog/serverless-api-gateway-domain/),直到最近我意识到我才停止工作需要向我的 SSL 证书添加更多域。

所以我认为政策错误在这附近,但不知道在哪里看?

0 投票
1 回答
1934 浏览

serverless-framework - 无服务器部署未获取 AWS 凭证

在 PowerShell 上,我定义了两个环境变量来定义 AWS 密钥和访问密钥:

为什么无服务器会选择我的凭据?

0 投票
0 回答
2543 浏览

node.js - TypeError:路径必须是字符串。收到未定义

使用带有单元测试模块的serverless框架时serverless-offline出现持续错误。jest

我正在尝试使用serverless-jest-plugin应该集成jestserverless. 以下是我的jest配置serverless.yml

我有一个 lambda 函数,它使用 dynamoDB 来获取一些数据等。

每当我使用时sls invoke test,我都有以下内容:

我正在运行以下内容package.json

干杯。

0 投票
1 回答
857 浏览

node.js - Node.js 无服务器脱机在第一次请求后挂起

当我第一次发出请求时它工作正常,但是当我再次发出请求而不重新启动服务器时,它会超时并返回一些承诺错误

0 投票
0 回答
415 浏览

serverless-framework - serverless-dynamodb-local web shell 错误

第一次尝试无服务器框架。
我正在尝试使用本地 web shell 进行一些检查。
但意识到我无法列出表格或显示记录列表。

网页外壳示例:

上述命令会引发状态码413错误。

在此处输入图像描述

aws cli工作正常:aws dynamodb scan --table-name=stocks-table-dev --endpoint-url='http://localhost:8000'

我用命令启动 web shell sls dynamodb start
在此之前,我使用以下命令安装插件:

  • npm install --save-dev serverless-dynamodb-local
  • sls dynamodb install

我是否应该使用 web shell 进行检查?
是否需要进行一些配置才能使 web shell 正常工作?

0 投票
1 回答
210 浏览

node.js - 无法使用阿里云函数计算 Serverless 插件创建新函数

我正在遵循本指南:Aliyun Function Compute Serverless Plugin尝试使用Serverless Framework以及Aliyun Function Compute Serverless Plugin在阿里云函数计算下创建具有新 Node.js 无服务器功能的新服务。

但是,在我执行完serverless deploy命令后,我只能在阿里云函数计算控制台中看到一个没有创建任何函数的新服务,这不是我所期望的。

在部署过程中我没有看到任何错误。

有没有人对此有任何经验和解决方案?非常感谢!

serverless.yml 如下图所示:

0 投票
2 回答
9481 浏览

serverless-framework - 使用 serverless-dotenv-plugin 更正 .env 文件

我使用以下作为自定义serverless-dotenv-plugin插件配置:

custom: dotenv: path: .env-${opt:stage, 'local'}

但是我真正想要得到的是,.env当我不提供参数时从文件加载环境,.env.staging当我staging用作 CLI 参数时从文件加载环境。

我不知道这如何反映在path上面。请问有什么帮助吗?

0 投票
1 回答
324 浏览

amazon-web-services - node8.10中的无服务器Lambda部署不上传任何代码

我有一个使用无服务器部署的 lambda 函数。它是使用node6.10运行时部署的,因此我决定改为使用运行时重新部署服务node8.10

但是,在进行此重新部署后,我遇到了一个奇怪的问题,即我无法调用该函数并且由于文件大小太大(60mb+)而无法再部署对该函数的更新。我能够通过卸载并重新安装来解决此问题serverless-plugin-optimize

这解决了文件大小问题(现在大约 2mb),但我仍然无法调用该函数。尝试调用它会在 CloudWatch 中产生以下日志:

我当时的期望是我serverless.yml的函数中的文件路径是错误的,或者它没有正确导出。

./serverless.yml

./lambda/index.js

然而,情况似乎并非如此,我知道这一点是因为设置debug: true了带有我的缩小代码serverless-plugin-optimize_optimize文件夹。然而,尽管它存在于本地,但它似乎并没有上传到 Lambda。

在 AWS 控制台中查看此内容,我得到以下信息:

Lambda 目录中列出的 2.6mb 上传:

Lambda 目录中列出的 2.6mb 上传

Lambda 控制台代码编辑器中的错误 无法打开文件:/lambda/index.js

60mb 文件仍列在 S3 部署存储桶中 60mb 文件仍列在 S3 部署存储桶中

我无法解释为什么我会遇到这个问题,或者切换到node8.10会导致什么。在文件之外,serverless.yml没有任何代码从工作node6.10版本更改。有没有人遇到过这个问题或知道任何可以解决它的方法?