AWS Lambda:为 Node 运行时使用异步处理程序函数有好处吗?

A P*_*oor 5 javascript asynchronous amazon-web-services node.js aws-lambda

我正在使用 Node.js Lambda 函数创建 AWS SAM 应用程序。默认模板有一个异步处理函数:

exports.lambdaHandler = async (event, context) => {
  // ...
  return {
    statusCode: 200,
    body: JSON.stringify({ hello: "world" })
  };
};
Run Code Online (Sandbox Code Playgroud)

将此处理程序函数设置为asyncvs是否有任何好处sync,因为我的理解是每次调用 Lambda 函数时它都会与其他实例分开运行?

Twi*_*her 7

AWS Lambda 还处理同步函数和异步函数。async意味着两件事:

  • 该函数返回一个Promise
  • 你可以await在里面使用

AWS Lambda 恰好将 Promise 理解为返回值,这就是async函数也能工作的原因。所以如果你需要的话await就去吧async

您也不能将函数声明为asyncand returna Promise(或 Promises 链)