问题标签 [serverless]

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 投票
2 回答
1695 浏览

aws-lambda - 如何减小无服务器部署的大小?

我正在使用无服务器框架部署 aws lambda 函数。我的问题是每次执行时都会部署一个大文件sls deploy -f any_fn(44MB) 。node_modules当有一个文件夹(可能很大)时,我遇到了类似的问题。

有没有办法通过只上传一次公共文件(并且适用于所有功能)来减少上传大小?因为现在它不断地压缩和部署同一个二进制文件,尽管它从未改变过。

0 投票
2 回答
469 浏览

openwhisk - 无法在 ubuntu 上本地设置的 openwhisk 上安装和使用 /whisk.system/alarms

我看到以下错误:

bin/wsk 包获取 --summary /whisk.system/alarms --insecure 错误:无法获取包“警报”:提供的身份验证无权访问此资源。(代码 7320)

我正在使用访客身份验证

(我已经在我的 Ubuntu 16.04 机器上下载了 openwhisk 源代码,并使用 ./gradlew distDocker 安装了它)。

其他功能正在发挥作用:动作、触发器、规则等。

尝试从 github 下载 /whisk.system/alarms,然后运行 ​​installCatalog.sh - 它为 POST 请求提供了 EOF:

~/openwhisk-package-alarms$ ./installCatalog.sh $AUTH_KEY $API_HOST $API_HOST $API_PORT $API_HOST 错误:包更新失败:放https://172.17.0.1:5984/api/v1/namespaces/_/packages/警报?覆盖=真:EOF techie@serverless02:~/openwhisk-package-alarms$

0 投票
1 回答
2304 浏览

node.js - 使用 Lambda 查询 DynamoDB 中的单个项目

我在 DynamoDB 中有一个存储一些数据的表,分区键 - 用户名 - 存储为 CognitoUser 名称以及用户提供的排序键(排序键是“代码”) - 这些构成主键。

我想查询 DynamoDB 中与主键匹配的单个项目。 

这是我的 Lambda 函数;

如果我在这个函数中硬编码“用户名”和“代码”,它会工作并返回正确的数据,但使用上面粘贴的代码会给我一个错误提示;

任何想法如何从 DynamoDB 获取项目而不必将它们硬放入 Lambda 中?

0 投票
2 回答
3517 浏览

serverless-framework - 无服务器框架 - 在 serverless.yml 中启用 X-Ray

有没有办法从 serverless.yml 为 Lambda 函数启用 X-Ray?我在文件中添加了 X-Ray 权限:

但是高级跟踪仍然需要在 AWS 控制台中手动启用。

0 投票
0 回答
344 浏览

lambda - zappa python 3.6 Flask lambda

这是我得到的错误:“{'message': '处理此请求时发生未捕获的异常。您可以使用zappa tail命令调查此问题。', 'traceback': ['Traceback (last recent call last):\n' , ' File \"/var/task/handler.py\", 第 454 行,在处理程序中\n response = Response.from_app(self.wsgi_app, environ)\n', ' File \"/var/task/werkzeug/ wrappers.py\",第 903 行,在 from_app\n return cls(*_run_wsgi_app(app, environ, buffered))\n','文件\"/var/task/werkzeug/test.py\",第884行,在 run_wsgi_app\n app_rv = app(environ, start_response)\n', \"TypeError: 'NoneType' object is not callable\n\"]}"

我没有主块,因为 lambda 没有进入它。

我在 init.py 中有代码,我的类在另一个文件中。

有人可以帮忙吗?我一无所知,因为这是我第一次尝试 lambda 和 zappa。

这是我的 init.py:


仅供参考 - 上面的代码在本地机器(Vagrant、venv、Python 3.6、Flask)上运行良好。

感谢你的帮助

0 投票
1 回答
214 浏览

openwhisk - 无法使用 /whisk.system/alarms/alarm feed 在 ubuntu 本地机器上创建 openwhisk 触发器

我能够成功安装警报系统包,主要是通过链接https://github.com/apache/incubator-openwhisk-package-alarms/issues/51#issuecomment-294010619

所以,我得到以下信息: bin/wsk package get --summary /whisk.system/alarms --insecure package /whisk.system/alarms:警报和定期实用程序(参数:*apihost、*cron、*trigger_payload)提要/ Whisper.system/alarms/alarm:发生警报时触发(参数:未定义)

动作、触发器、规则等功能正在我的本地 openwhisk 安装上运行。

我正在运行以下命令来创建触发器: bin/wsk trigger create convertTriggerPeriodic --feed /whisk.system/alarms/alarm -p cron "*/9 * * * * *" -p trigger_payload "{\"name \":\"Odin\",\"place\":\"Asgard\"}" -p maxTriggers 6 --insecure

它正在运行触发器两次。每次都报错: "error": "There was an error processing your request." 然后它正在删除触发器。

因此,我无法将规则/操作与触发器相关联。

0 投票
1 回答
2970 浏览

amazon-web-services - 如何使用 serverless-domain-manager 插件根据阶段设置不同的域?

我正在尝试使用serverless-domain-manager插件在无服务器中设置不同的自定义域。

我遵循了本教程: https ://serverless.com/blog/serverless-api-gateway-domain/

但该示例并未显示如何设置多个自定义域。

在我的serverless.yml文件中,我有:

如何添加另一个域?例如,对于prod舞台?

0 投票
1 回答
2883 浏览

serverless-framework - Serverless.yml 拒绝 cloudformation “Ref”函数

这是我的 serverless.yml 文件中的一个片段:

这是我收到的错误:

此模板在 cloudformation 中用于创建堆栈时效果很好。为什么 !Ref 被 serverless.yml 拒绝?

0 投票
3 回答
99 浏览

amazon-web-services - 无服务器如何在 aws 中调用

我是整个无服务器框架的新手。我创建了我的第一个无服务器函数,如此处所述https://www.npmjs.com/package/serverless#quick-start。接下来,当我执行“无服务器调用”时,它会起作用。我很困惑这是如何工作的,我对此的问题是

  1. 似乎没有创建 API 网关,那么它如何调用?
  2. serverless.yml 文件中还提到了阶段,我不确定这些转换为什么

对此的任何帮助都将受到高度赞赏。

0 投票
0 回答
2661 浏览

node.js - 使用 Node.js 使用 AWS Lambda 函数访问 Postgres 数据库

我的“handler.js”函数连接到 Postgres 数据库并使用 node.js 执行一些查询。我的函数在本地成功运行,但是当作为 AWS lambda 访问时,查询不起作用。

我还在“serverless.yml”中添加了相应的 vpc 安全组和子网 ID。

'Cloudwatch' 中的错误日志仅显示查询前后的 console.log 语句,并且函数因超时错误而终止。我无法弄清楚这个问题。

我在下面附上了示例“handler.js”代码: