Aws lambda Lambda函数,带Api网关(反向代理),使用带Express的无服务器

Aws lambda Lambda函数,带Api网关(反向代理),使用带Express的无服务器,aws-lambda,aws-api-gateway,serverless,aws-serverless,amazon-api-gateway,Aws Lambda,Aws Api Gateway,Serverless,Aws Serverless,Amazon Api Gateway,我对lambda函数如何与API网关一起工作感到困惑。有很多框架可以使用,我一直听说的是serverless和serverless-express。除了使用API网关的Lambda函数,serverless是否与Express类似 例如,如果我想在lambda中定义多条路线,就像在Express应用程序中一样,该怎么办 有人能告诉我在node.js中为api网关调用创建路由的最佳方法是什么吗?也许这最好是在某个框架中完成的,还是像lambda中那样简单?让我试着澄清你的困惑,我能理解@Artur

我对lambda函数如何与API网关一起工作感到困惑。有很多框架可以使用,我一直听说的是
serverless
serverless-express
。除了使用API网关的Lambda函数,serverless是否与Express类似

例如,如果我想在lambda中定义多条路线,就像在Express应用程序中一样,该怎么办


有人能告诉我在node.js中为api网关调用创建路由的最佳方法是什么吗?也许这最好是在某个框架中完成的,还是像lambda中那样简单?

让我试着澄清你的困惑,我能理解@Arturo不客气!AWS Lambda函数中不包含无服务器框架。它只是帮助您将Lambda函数部署到AWS。Lambda函数就是任何类型的Node.js文件,它导出处理程序函数并实现
(事件、上下文、回调)
函数(或者
async(事件、上下文)=>{}
以更现代的方式)。您不需要在Lambda中捆绑无服务器框架(您不应该这样做)。使用
捆绑
我的意思是,您不需要将无服务器框架作为依赖项包含在上传到AWS Lambda的Lambda函数工件中。您只需将Lambda功能代码与
node_modules
文件夹压缩在一起,然后将所有这些内容上载到AWS Lambda(在AWS控制台中手动或使用一些脚本)。但是
node\u modules
文件夹不需要包含无服务器依赖项。(至少我认为这也让你感到困惑)不过,请注意,无服务器框架正是为你这样做的:捆绑你的代码并将其上传到AWS Lambda-你不必手动操作。如果你想使用现有的HTTP API或DynamoDB表,您可以使用它们的ARN在无服务器模板文件中引用它们。(我看不出有什么好的理由让你这么做——而是要确保在模板中创建所有资源,如HTTP API或表,然后部署整个模板)是的,我同意,有这么多不同的工具和服务,需要一段时间才能理解一切;)是的,建议使用基础结构作为代码在模板中编写所有内容。但是,可能有某些原因导致您希望使用其他资源(例如,他们的ARN)引用其他资源,而不将其包含在模板中。但是对于您当前的用例,我不明白为什么有必要;)因此,如果我的回答对您有所帮助,请随意接受:)