当前,我有一个整体应用程序,我们希望使用lamba移植到较少的微服务服务器。现在的工作方式是只有一个端点http://localhost:3000/input?data=%7Btype%3A%27music%27%2Cname%3A%27Sorry%27%3A%2Cartist%3A%27justin%20bieber%27%7D
。根据数据参数的内容(对消息属性的正则表达式评估),我们知道要调用代码的哪一部分。 (即音乐,视频,图片处理器)。如果要将整体分成3个lambda函数,我们如何使用API网关基于数据查询字符串来触发这些函数?
注意:客户端不在我们的控制范围内,它是一个黑箱,只能以上述格式调用1个url。 data参数是url编码的json字符串。
什么是最好的方法?我们正在考虑编写一个独立的应用程序,该应用程序会将请求代理到API / Lambda,但这并不是没有服务器的(可能必须使用EC2)。另一种选择是触发一个lambda函数,该函数将解码data参数,执行正则表达式,然后调用适当的lambda。
答案 0 :(得分:0)
这是我们解决类似问题的方法。
CloudFront-> API GW-> Lambda(分析参数并进行调用 正确的端点)-> Http外部调用
这是一种简单且可扩展的方法。
如果您的起点需要故障转移功能,则可以使用CloudFront创建起点组并将lambda托管在其他区域,并使其高度可用。
希望有帮助。