问题标签 [serverless-framework]

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 回答
490 浏览

aws-lambda - 将端点添加到无服务器 CLI 生成的函数

我是 Serverless ( www.serverless.com ) 和学习 CLI 的新手。

我在为函数创建 POST、PUT 或 DELETE 端点时遇到问题。在查看文档时,我使用以下内容创建了一个函数:

这很好用,生成的 s-function.json 自动添加了一个“GET”端点。我想要的是能够在某些功能上添加“PUT”、“POST”或“DELETE”端点。

从文档中看起来我可以使用端点部署,但是我尝试了这个并且它不起作用:

这个错误表明不存在这样的端点名称(我假设因为它不在 s-function.json 文件中)。

我是否需要手动编码 s-function.json 文件以包含其他端点,或者有没有办法通过 CLI 做到这一点?

谢谢你的帮助!

0 投票
1 回答
306 浏览

node.js - 如何检查 Openwhisk (IBM Cloud Functions) 是否被调用?

我有一个将数据上传到 Cloudant 数据库的 Web 应用程序。更改事件应触发 OpenWhisk / IBM Cloud Functions 激活或操作。如何检查是否调用了 OpenWhisk,是否有调试机制?我尝试使用仪表板,但有什么可以在命令行上使用的吗?

我正在试验 node.js 和 Docker 操作,所以如果解决方案独立于操作是在 node.js、Swift 还是 Docker 容器中,那就太好了。

0 投票
4 回答
23943 浏览

amazon-web-services - requestParameters 返回“指定的映射表达式无效:true”

我正在配置 lambda 函数的 API 网关与无服务器框架版本 0.4.2 的集成。

我的问题是定义端点的请求参数。API 网关条目的AWS 文档说:

请求参数

表示 Amazon API Gateway 可以接受的请求参数。请求参数表示为键/值映射,源作为键,布尔标志作为值。布尔标志用于指定参数是否是必需的。源必须匹配模式 method.request.{location}.{name},其中 location 是查询字符串、路径或标头。name 是一个有效的、唯一的参数名称。此处指定的源可用于集成以映射到集成请求参数或模板。

据我了解,中的配置s-function.json直接提供给 AWS CLI,因此我指定了以下格式的请求参数: "method.request.querystring.startYear": true. 但是,我收到一个Invalid mapping expression specified: true错误。我也尝试过指定配置,"method.request.querystring.startYear": "true"结果相同。

s-function.json

有任何想法吗?提前致谢!

0 投票
2 回答
2333 浏览

node.js - 为 AWS Lambda 和无服务器推荐什么本地节点版本

从 AWS-Lambda 和无服务器框架开始,我对节点版本感到困惑:

AWS 帮助网站说(2016 年 3 月 21 日)

AWS Lambda 支持以下运行时版本:

Node.js:v0.10.36

所以我确实在我的本地机器上安装了 Node.js v0.10.36。通过安装最新的(v 0.4.2)无服务器框架

它给出以下警告:

npm WARN 引擎 serverless@0.4.2: 想要: {"node":">=4.0"} (当前: {"node":"0.10.36","npm":"1.4.28"})

我认为在本地拥有与 AWS 相同的版本可能有助于拥有一致的开发环境......我错了吗?我应该在本地运行什么 Node.js 版本才能充分利用无服务器?

0 投票
1 回答
3123 浏览

aws-lambda - 在无服务器框架命令行中使用输入参数运行 lambda 函数

我在无服务器框架的帮助下开始了一个 aws 项目,但我有一个关于运行 lambda 函数的问题。

如何使用输入参数运行 lambda 函数?我可以通过亚马逊控制台、lambda 测试配置-> 测试事件来完成。但是我在无服务器中找不到相应的功能,有人知道吗?

谢谢

0 投票
1 回答
120 浏览

serverless-framework - 部署时无服务器入门演示错误

我正在按照无服务器快速入门演示https://github.com/serverless/serverless-starter的说明进行操作

我得到一个错误serverless dash deploy

我做错了什么——这似乎是一个基本的演练。

0 投票
1 回答
3243 浏览

json - 如何将 JSON 字符串作为查询参数传递给 API Gateway

如何将 JSON 对象{val: 1}作为查询参数传递给我的 Lambda 函数?
遵循将 JSON 序列化为查询字符串的标准化方法?我对我的 JSON 对象进行 URL 编码并请求以下内容:mysite.com/path?json=%7B%22val%22%3A%201%7D

作为requestTemplates我尝试了以下两个选项

  1. "json": "$input.params().querystring.json"
  2. "json": "$util.parseJson($input.params().querystring.json)"

但我收到了这个错误信息:

{“消息”:“无法将请求正文解析为 json:意外字符(\'v\'(代码 118)):在 [Source: [B@37a2970e; line: 1,列:47]"}

如果我不对查询字符串进行编码,则:mysite.com/path?json={"val":1}我收到 400 错误

0 投票
1 回答
228 浏览

amazon-web-services - AWS 无服务器项目不能通过 Git 共享?

s-function.json需要那个变量"customRole": "${myLambdaRole}",

但是,如果其他人通过我serverless project的方式获得了该文件夹,git clone则他不会获得该_meta文件夹。

现在他serverless project init跟在同一个舞台和同一个区域。这会创建_meta文件夹,但它不会s-variables-common.json使用Output Variablesfrom填充s-resources-cf.json

现在他尝试部署serverless dash deploy错误

不幸serverless resources deploy的是,即使打电话也不能解决问题,因为它说

并且s-variables-common.json仍然没有填充必要的输出变量。

这基本上意味着在通过Git.

因此,由于我们不想将_meta文件夹签入Git,我建议serverless project init调用应确保所有Output Variables文件都正确获取并填充到s-variables-common.json.

这很重要,或者你们如何通过“Git”共享项目?

0 投票
3 回答
1220 浏览

aws-lambda - 本地测试中的无服务器变量

serverless 提供了一个很好的工作流程,可以在运行时函数代码以及 Lambda 函数和 API Gateway 路由的 AWS 配置中使用变量。这在http://docs.serverless.com/docs/templates-variablesHow to define variables in a DRY way 中有描述。

当我在本地使用sls function run -s stage. 当我通过包含该选项在 Lambda 上运行测试时,该函数运行良好-d,但没有它会失败,因为尚未分配必要的变量。serverless 提供以下消息:

我正在使用链接2中描述的 DRY 变量。具体来说:

s-变量-aguldman-useast1.json:

函数/fn1/s-function.json:

函数/fn1/handler.js:

有什么建议吗?

谢谢!

0 投票
1 回答
2087 浏览

amazon-web-services - 如何使用无服务器创建 API 密钥并将其分配给创建的阶段 API?

我想使用无服务器创建一个安全的 APIG,在我当前的“ s-fction.json ”中我已经拥有:

在我的“ s-resources-cf.json ”中,我已经有了:

它正确地创建了所有,一个 Lambda,一个用于该 lambda 的 APIG(包括 CORS)和 API 密钥,但我需要手动将密钥“分配”给生成的 APIG-Stage,你对我该怎么做有任何想法吗?自动使用无服务器?

我已经从这里阅读了关于我想要的功能的 AWS 文档(而且似乎是可能的):AWS CloudFormation API Key

该文档显示它可以通过以下方式完成:

但我不知道如何添加对无服务器自动创建的 APIG 的引用以及如何等待该 APIG 被创建。