Amazon web services AWS Lambda-使用.NET核心构建无服务器API
最近,我一直在研究AWS Lambdas以及如何使用.Net内核构建无服务器API。据我所知,你可以用两种不同的方式 1) 在C#中编写多个单独的lambda,并将它们部署到AWS。请求通过API网关进入,每个lambda充当端点 2) 使用.Net核心构建无服务器Web API。创建无服务器Web API项目时,将自动创建一个Lambda,它将成为Web API的入口点Amazon web services AWS Lambda-使用.NET核心构建无服务器API,amazon-web-services,asp.net-web-api,aws-lambda,serverless,Amazon Web Services,Asp.net Web Api,Aws Lambda,Serverless,最近,我一直在研究AWS Lambdas以及如何使用.Net内核构建无服务器API。据我所知,你可以用两种不同的方式 1) 在C#中编写多个单独的lambda,并将它们部署到AWS。请求通过API网关进入,每个lambda充当端点 2) 使用.Net核心构建无服务器Web API。创建无服务器Web API项目时,将自动创建一个Lambda,它将成为Web API的入口点 1对2是否有任何限制,或者一种方法可能比另一种方法更有益的用例?或者,这只是实现同一目标的两种不同方式?我认为你的选择不正确
1对2是否有任何限制,或者一种方法可能比另一种方法更有益的用例?或者,这只是实现同一目标的两种不同方式?我认为你的选择不正确。构建Lambda支持的API的两个选项是: 1-在一个或多个项目中构建lambda并将其独立部署到AWS。然后手动创建指向一个或多个lambda的API网关端点 2-使用无服务器项目将lambda合并到一个项目中。在该项目中定义端点,让Cloudformation创建API网关端点,并在部署时将它们连接到lambda 就正反两方面而言, 选项1: 优点:具有独立部署lambda的灵活性,您也可以按照自己的方式配置API网关端点,而无需理解Cloudformation定义语法,根据我的经验,这需要一些启动时间 缺点:如果你有很多lambda,这将成为管理层的噩梦。此外,源代码中没有端点定义,因此不会跟踪对端点配置的更改 选项2: 优点:如果您了解了Cloudformation,或者如果您想使用默认配置部署lambda并将其挂接到API网关端点,这将非常简单。AWS将为您创建端点,并将创建开发和生产阶段、策略、IAM角色等。直接从Visual Studio通过Cloudformation进行部署会导致整个部署和所有相关对象位于AWS Cloudformation中相同的“堆栈”下,可以很容易地进行更改、重新定位或删除。此外,您的基础架构现在是代码,对它的更改可以在git repo中审核 缺点:我认为最大的缺点是堆栈不跨VS解决方案,而只跨项目,因此所有lambda必须生活在同一个项目中,这意味着如果您有很多lambda,那么它们最终将成为一个整体lambda二进制文件。生成的大型项目二进制文件将消耗AWS上的内存运行时间和效率问题。另一个缺点是,如果您想要使用特定的或非普通的API网关,则需要了解Cloudformation语法以更改serverless.template文件 结论:我的首选解决方案是根据API对象将我的真实应用程序划分为较小的相关lambda块,并将这些lambda放在几个无服务器应用程序项目中。例如,我有一个订单项目,其中包含与订单API相关的所有lambda,还有一个产品项目,其中包含与产品API相关的lambda等。这两个项目将位于同一个解决方案中,并将分别部署。我目前正在研究一种立即部署整个解决方案的方法