我有一个用例,客户端应用程序将使用MULTIPLE产品标识符进行REST调用并获取其详细信息。我有一个lambda函数(由API网关公开),它可以获取SINGLE产品ID并获得它的详细信息。我需要让他们一起工作..对此有什么好的解决方案?
修改客户端应用,以便生成单个产品ID请求。那时不需要改变Lambda函数。但这会增加客户端应用程序网络调用,因为它将分别为每个productId调用lambda ..
修改lambda函数,使其可以在同一个调用中处理多个产品ID ..但这会增加lambda响应时间..
我还在考虑创建一个新的lambda函数,它接受多个productId'然后调用单个产品lambda函数..但不确定如何在发送回客户端app之前聚合响应
寻找建议..
答案 0 :(得分:0)
选项1不太理想,因为它会将客户端与服务器之间的繁琐协议移动。
如果没有单个Id的用户,那么我就不会让那个人活着。 (不是选项#3)
根据您选择的语言 - 最好实施2(或此事项为3)。 node.js(和C#太btw)使得并行(异步调用)执行多个调用非常容易,然后等待所有结果并返回到客户端。 这意味着您不会再等待X时间 - 只需多一点,与最慢的呼叫保持一致。 ES6(现代JS,由Lambda支持)现在支持Promise.all()用于此目的。 C#还使用Task.WaitAll()
本机支持这些模式