为什么在无服务器中响应的第一个元素为空?

Why the first element of response is null in serverless?

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

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

}

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

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

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

希望对您有所帮助。