上周在ReInvent上,发布的公告之一是ALB现在可以调用Lambas来服务HTTPS请求。由于我们已经可以将API网关连接到Lambdas,因此我对这个新功能解决了什么问题感到困惑。
有人可以举一些例子吗?
答案 0 :(得分:4)
解决的问题是,它允许使用Lambda函数的另一种方式来处理HTTP请求并生成响应。
...但是您已经可以使用API网关或CloudFront的Lambda @ Edge功能来做到这一点。
那么,真的解决了什么问题?
将Lambda请求处理简化集成到使用ALB的以服务器为中心的应用程序中。
从某种意义上说,此功能提供了API网关功能的一部分,但它在重要方面有所不同-通过允许您轻松地将Lambda函数“装入”现有的基于EC2的应用程序中的一组特定路径中
您可以选择特定的路径模式并将其仅发送到Lambda函数-在同一个域下,没有任何跨域复杂性,并且无需通过EC2实例代理请求-同时继续从EC2服务其余的应用程序。避免在应用程序中使用跨域资源可以简化许多事情,其中最重要的就是cookie和会话。
虽然在某些情况下您也可以使用它来代替API Gateway可以执行的操作,但并不是可以完全为Lambda函数设置ALB的想法,尽管您当然可以这样做。
答案 1 :(得分:1)
另一个区别是ALB支持HTTP端口80侦听器,而API网关仅支持HTTPS端口443。
在某些情况下,发送/接收数据的客户端/设备出于各种原因(例如远程或嵌入式设备)将不支持HTTPS。
现在,ALB允许直接将潜在的便宜/更具针对性的代理直接转换为Lambda函数,而不是从CloudFront路由到API网关再到Lambda。
答案 2 :(得分:0)
这是一个伟大的公告,确实是无服务器架构的推动者。我认为,以下用例现在更有意义:
现在,这将使我们能够路由以/ application触发器Lambda函数开头的请求。