我可以直接在API架构中调用服务来为AWS Lambda提供服务吗?

时间:2018-01-21 05:09:18

标签: amazon-web-services lambda microservices

这是我第一次将AWS Lambda用作API架构。 因为我试图实现无服务器。 比方说,我有三个微服务,其中所有微服务托管在AWS Lambda上。 我使用AWS API Gateway作为路由器。我还在API网关中实现了Jason Web令牌。

这是前端将使用的公共网址。

  1. 网址路由API - https://mydomain.co/v1/lambda-service1 Lambda REAL网址 - https://cr7z0dds42.execute-api.ap-southeast-amazonaws.com/DEV/

  2. 网址路由API - http://mydomain.co/v1/lambda-service2 Lambda REAL网址 - https://cr7z0ddgg2.execute-api.ap-southeast-amazonaws.com/DEV/

  3. API路由网址 - http://mydomain.co/v1/lambda-service3 Lambda REAL网址 - https://cgf7z0ddgg2.execute-api.ap-southeast-amazonaws.com/DEV/

  4. 基本上,如果我目前是我的客户端/前端,我想使用TOKEN从API编号1调用数据,我将使用API​​路由URL。 但在某些情况下,API号1需要在返回客户端/前端之前调用服务号2。 目前,我所做的是通过Lambda REAL URL直接拨打服务号码2,而不是使用TOKEN从服务号码1拨打API路由URL。

    这是否合理?

1 个答案:

答案 0 :(得分:0)

如果我的查询正确,也可以在下方提供帮助。

理由主要基于您期望开发的应用程序的规模以及您的组织/体系结构策略(您可能希望强制执行)。

如果令牌用于所有API调用,并且当更广泛的开发团队工作在轨道上时,使其一致性将变得容易。还可以轻松进行故障排除,因为每个Lambda函数(输入/输出)逻辑的范围都是清晰且一致的。

另一个想法是围绕成本,API调用会花费你的大规模。因此,在架构期间也应该考虑到这一点。但是(在我看来)应用程序调用流程的一致性,因为它可能为没有访问API网关的流量带来节省,而直接从Lambda调用到内部资源的调用可能是微不足道的。

无论如何要考虑一些想法。