首页 > 解决方案 > 为什么无服务器中响应的第一个元素为空?

问题描述

我是无服务器框架的新手,我尝试创建一些 lambda 函数。我发现有趣的东西,例如请求的处理程序总是为空。

exports.handler = async function(event, context, callback) {
    ....
    callback(null, 'Success!');

}

回调响应的第一个元素是什么意思?如果元素不为空,它应该是什么?为什么它应该为空?

标签: requestaws-lambdahttpresponseserverless

解决方案


我也有同样的疑问,这是我的观察。

  1. 如果第一个参数不为空,则表示错误,即 lambda 失败。
  2. 它会将指标添加到 CloudWatch,您可以根据故障触发警报。
  3. 如果您有来自触发器(例如 DynamoDB 流、Amazon Kinesis)的同步调用,这些适配器将重试调用它,直到对 lambda 的调用成功。
  4. 此外,大多数语言中的第一个参数不是可选的,如果强制您评估函数是否成功。由于存在其他依赖关系,因此基础设施(上面提到的一些)需要基于该值建立。

希望能帮助到你。


推荐阅读