繁体   English   中英

AWS Lambda:在节点运行时使用异步处理程序 function 是否有好处?

[英]AWS Lambda: Is there a benefit to using an async handler function for the Node runtime?

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

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

让这个处理程序 function 成为asyncsync有什么好处,因为我的理解是每次调用 Lambda function 时它与其他实例分开运行?

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

  • function 返回Promise
  • 你可以在里面使用await

AWS Lambda 恰好将 Promises 理解为返回值,这就是async函数也能正常工作的原因。 因此,如果您只需要await go 即可进行async

您也不能将 function 声明为asyncreturn Promise (或承诺链)

如果要使用 return 和 throw 分别从 function 处理程序发送响应或错误,请使用异步处理程序 function。

您可以使用非异步处理程序,但它仅在事件循环为空或 function 超时时终止 function 执行。

参考: https://docs.aws.amazon.com/lambda/latest/dg/nodejs-handler.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM