9

当我浏览 AWS Lambda 文档时,有一些关于基于 AWS 事件触发服务的参考资料。我没有在 Lambda 中看到有关托管服务的参考资料。

想了解是否可以使用 AWS Lambda 创建 RESTful 服务以供网站使用?

我可以使用 NodeJs 来开发服务。

4

6 回答 6

8

截至上个月,答案已经改变。AWS Lambda 函数现在可以返回同步响应,AWS 现在鼓励将 Lambda 用作移动后端或可能是完整的 REST API。

目前文档有点稀疏,但您现在可以在这里开始阅读:http: //aws.amazon.com/lambda/whatsnew/

于 2015-05-11T20:40:48.583 回答
7

Amazon 现在通过API Gateway服务直接支持这一点。这篇文章很好地介绍了如何开始。

于 2015-07-09T21:06:20.620 回答
5

更正:

亚马逊推出 - 使用 Lambda 的亚马逊 API 网关

什么是亚马逊 API 网关?

API Gateway 帮助开发人员提供强大、安全和可扩展的移动和 Web 应用程序后端。API Gateway 允许开发人员将移动和 Web 应用程序安全地连接到托管在 AWS Lambda 上的业务逻辑、托管在 Amazon EC2 上的 API 或托管在 AWS 内部或外部的其他可公开寻址的 Web 服务。借助 API Gateway,开发人员可以为其后端服务创建和操作 API,而无需开发和维护基础设施来处理授权和访问控制、流量管理、监控和分析、版本管理以及软件开发工具包 (SDK) 生成。

API Gateway 专为希望提供对后端 API 的安全、可靠访问的 Web 和移动开发人员而设计,以便从内部或第三方生态系统合作伙伴构建的移动应用程序、Web 应用程序和服务器应用程序进行访问。API 背后的业务逻辑可以由可公开访问的端点 API Gateway 代理调用提供,也可以完全作为 Lambda 函数运行。

https://aws.amazon.com/api-gateway

截至今日; AWS Lambda 专注于处理/响应 S3 put、DynamoDB Streams 等事件以及自定义事件 [亚马逊可能会提供更多事件源] - 大量利用 STATELESSNESS 编程风格。

使用 AWS Lambda 构建完整的 RESTful 服务后端是不可能的,或者换句话说,AWS Lambda 将是构建 RESTful 服务的错​​误选择。您可以继续使用 NodeJS 并使其在 EC2 或 ElasticBeanstalk 之上运行。

于 2015-02-19T11:48:49.190 回答
1

答案是肯定的,可以使用 AWS lambda 构建 RESTful 服务供网站使用。

亚马逊的蒂姆·瓦格纳 (Tim Wagner) 在一次会议演示中回答了您的问题,一位听众提出了与您的问题非常相似的问题。

问题

“如果你想根据来自互联网用户的常规旧 Web 请求触发 lambda 函数......他们点击了一个地址并发送了一堆查询参数......所以只有这一种无状态类型带有一堆数据的东西,然后你想触发一个 lambda 函数?...那里有什么选项?...触发 node.js 工作负载?”

答案 1

“......使用 beanstalk 之类的东西来创建一个 Web 应用程序。然后在该 Web 应用程序内部调用 lambda 函数来处理您的工作负载或场景中有意义的部分”

答案 2

“......如果你能够......限制你的调用以匹配 lambda 的请求模型,那么你可以跳过它(beanstak webapp)并简单地给我们打电话,就好像我们是你的网络服务代理一样”

https://youtu.be/copO_JQQsBs?t=50m53s


至于你问题的节点部分。

答案是肯定的,您可以使用 node.js 开发您的 Lambda 函数

请参阅下面来自亚马逊的网络研讨会。

“我们今天支持的语言是 node.js”

https://youtu.be/YEWtQsqIYsk?t=25m22s

于 2015-06-26T08:36:46.613 回答
0

使用 AWS Lambda,您几乎可以做任何事情(也非常容易)。您可以查看以下无服务器框架:http ://docs.serverless.com/v0.5.0/docs

于 2016-04-11T03:51:06.783 回答
0

对于 JAVA,您可以使用 Lambada 框架:https ://github.com/lambadaframework/lambadaframework

于 2016-04-11T08:16:51.700 回答