我一直在阅读Amazon Lambda并尝试创建要使用的Web API。我的理解是,通过创建每个函数,我们可以创建一个指向函数的资源,每个函数都独立于任何其他函数。我们是否应该使用共享库,我们可以在函数本身中执行此操作,或者让API网关调用中间函数,然后将正确的请求代理到最终函数以创建响应。
通过添加可以托管在AWS Lambda上的Web API解决方案,如果我们只是要部署整个应用程序,当EC2实例提供更多控制时,为什么我们要在lambda上托管一个完整的Web应用程序? ?
答案 0 :(得分:0)
我将Lambda用于我的.NET Core Web API项目之一,到目前为止看来还可以。主要好处是:
我目前唯一想到的负是ASPNET的启动时间。敲一个冷端点可能很容易花费大约5秒钟,如果它引入了很多程序集并且您正在运行一个小的Lambda(即256MB),则可能要花费更多时间
答案 1 :(得分:0)
对于小型项目(通常是儿童学校的志愿者项目),我通常可以停留在免费套餐内,特别是如果我正在像使用数据存储一样使用DynamoDB时。对于具有更高性能要求的工作,我将它们部署到一个自动缩放的EC2组。
我真正喜欢将AWS模板用于“ ASP.Net Core Web API”的地方是,我可以将它们开发为控制台应用程序,然后再将其构建并部署到EC2或作为无服务器的Lambda项目(有时是两者) )。
为简单起见,我确实将所有Web API函数都构建到一个应用程序中。这将是部署到EC2时的规范。部署为Lambda时会带来一些负面影响,因为并非所有功能都需要相同的资源,因此即使大多数调用使用最少的资源就可以正常运行,您也必须为Lambda提供所需的最大资源。为了提高Lambda的效率,可能会将它们分解成几个项目,以部署到不同大小(小,中,大)的Lambda上,但随后我必须维护3个项目,而不是一个。
希望这会有所帮助