【发布时间】:2020-04-22 22:36:15
【问题描述】:
我们正在改变我们框架中的一些东西,例如让 sequelize 与 serverless-bundle 一起工作。
我们以这种格式测试了我们所有的新功能:
serverless invoke local --function getObjects
它运行得非常完美而且速度惊人。
部署顺利,没有错误,我们设置了调试标志。端点似乎可以工作,但 lambda 函数没有响应。
这是我们的一些 serverless.yml
name: aws
runtime: nodejs12.x
stage: dev
region: us-west-2
logs:
restApi: true
iamRoleStatements:
- Effect: Allow
Action:
- "cloudwatch:*"
functions:
getObjects:
handler: objects/get.main
events:
- http:
path: objects
method: get
cors: true
authorizer: aws_iam
代码看起来与本地测试中的捆绑包相同,但它具有永久运行时,无论我在控制台中创建多大的 lambda 运行时都会超时。更奇怪的是,lambda 从不抛出错误,并且日志实际上是空的,这表明它甚至没有正确初始化函数。
以前有没有人看到过这种行为,或者有没有人知道如何解决它?
【问题讨论】:
-
有趣的场景,您是否尝试禁用授权器以查看是否是它的原因?你还有来自 lambda 或 api 网关的 cloudwatch 日志吗?
-
我刚刚尝试禁用授权者,但没有帮助。我们设置了日志,它们似乎可以工作,但它只进入第一个 console.log 打印接收到的事件输入,但它不打印任何其他内容。例如,对于 get 调用,它只记录
INPUT {}然后无论我们让它运行多长时间最终都会超时。 -
更奇怪的是,如果我将构建的 bundle 文件从 lambda 中提取到一个编辑器中,我可以使用 node 在本地运行它,但它仍然无法在 lambda 中运行。
-
你能分享你在node上执行的处理程序代码吗?
标签: aws-lambda serverless