【发布时间】:2018-09-29 04:12:21
【问题描述】:
我正在尝试从 Lambda 函数(针对 Alexa 技能)查询 DynamoDB 表,但是当我发送调用 require('aws-sdk') 的意图时,技能似乎挂起并超时。 Alexa 测试页面只是说“请求的技能响应有问题”,我在 CloudWatch 日志中看不到任何错误。我具备捕捉任何错误并将它们作为口头响应返回的技能,所以我确信这不是一个未捕获的异常。我也尝试将require 包装在try/catch 块中,但这也不起作用。
如果收到测试数据库意图请求,这是使用require 加载的模块:
const AWS = require('aws-sdk');
module.exports = () => {
return 'Success!';
};
如果我注释掉require('aws-sdk'),该功能将正常工作,Alexa 会以“成功”响应。
当我所做的只是需要aws-sdk 模块时,为什么我的技能会中断?
我对 AWS 很陌生,这是我第一次尝试在 Lambda 函数中访问 DynamoDB 表。
Lambda 函数以 zip 格式上传,其中包含我的源代码、package.json(包括 aws-sdk 作为依赖项)和 node_modules 文件夹。
【问题讨论】:
-
从那以后您找到解决方案了吗?我遇到了完全相同的问题(即我的 Lambda 函数在尝试要求 aws-sdk 时超时,无论我为它设置了多大的超时时间;它不会总是发生,但经常发生成为一个问题)。
-
@DánielKis-Nagy 我能够修复它,但老实说我不记得我改变了什么。我仍在使用
aws-sdk模块。我确实记得 DynamoDB 引起了问题,因为初始连接有时需要很长时间,函数会超时。
标签: node.js amazon-web-services aws-lambda alexa-skills-kit