AWS API网关可以调用多个lambda函数吗?

时间:2019-01-10 12:54:28

标签: amazon-web-services aws-lambda aws-api-gateway serverless-framework

我们在ECS中实现了一个前端。该前端与API网关进行通信,后者依次调用Lambda函数。我们正在为此架构实施灾难恢复解决方案。这不是完整的体系结构,但足以解决此问题。因此,我们非常确定DNS故障转移,路由策略等,并且在实现仅针对前端的灾难恢复方面非常出色。现在我们转到第二部分,即API网关和Lambda。对于API网关,我们得出的结论是,如果前端未在T时间内收到响应,则前端可以检查API网关的运行状况,并将T + delta t设置为RTO。如果API网关运行状况不佳,它将向其他AWS区域中的API网关发送请求。直到这里我们都很好。但是问题是,如果lambda在区域A中不起作用并且API网关在区域B中不起作用。在这种情况下,区域A的API网关应该能够调用区域B的lambda,并且还应该能够调用区域b的lambda一个健康的时候。

我想到的是,在我的Terraform代码中,我可以放置一些逻辑(显然是以声明性的方式或一些变通的方式),以便API网关仅应调用正常的lambda并将其自身集成回lambda当区域A的Lambda恢复到健康状态时,区域A的状态。可以通过一些连续的运行状况检查来检查。但是,这需要一些努力。

尽管这是AWS Lambda不在整个区域工作的罕见情况,但客户是E COM巨头,如果我们提到R +为T + delta t,则应该在限制范围之内。我们相信AWS,但我们也希望在所有情况下都安全,并具有最低的RTO和RPO。

有什么更好的方法吗?我们可以以某种方式将多个lambda集成到API网关吗?

1 个答案:

答案 0 :(得分:0)

您不能将API网关方法与多个lambda集成在一起。您将必须检测到lambda失败,并使用指向其他区域中lambda的所有方法重新部署整个API网关。这将花费一些时间,因此在切换Lambda集成之前,您将有一段时间的停机时间。