我一直在尝试使用AWS API Gateway和AWS Lambda来试用无服务器架构。一直在浏览博客和AWS文档。已经尝试了样本GET / POST。但是,我有以下要求w.r.t跟踪我的自定义应用程序中的用户事件
根据文档,我明白, a)我可以将事件发布到API端点 b)在GET / POST上触发AWS Lambda函数 - 从AWS Lambda函数回复到API请求
我想更改以上内容并将其修改为 a)将事件发布到API端点 a.0)回复确认已收到请求[说{'罚款'}] b)触发AWS Lambda函数以处理事件有效负载
请分享有关如何实现相同目标的建议。
答案 0 :(得分:0)
如果您想要API的快速响应而不必等待数据处理,您可以:
context.succeed()
或context.done()
或Lambda函数 A 中的回调函数,以便它回复API网关答案 1 :(得分:0)
许多客户使用的另一种异步模型:
此设置对于高工作负载API具有一些优势,因为Kinesis流中的提取可以进行批处理,并且不需要对API网关限制和Lambda限制进行1对1缩放。
更新
回答有关可扩展性的问题:
<强>室壁运动强>
Kinesis通过向流添加所谓的“分片”进行扩展。每个分片根据分区键处理一部分流量。每个分片最多可扩展到1000 rps或1 MBps(see limits)。即使使用较低的默认25分片,使用均匀分布的分区密钥也可支持高达25,000 rps或25 MBps。
API网关
API网关的默认帐户级别限制为500 rps,但可以通过请求限制增加轻松扩展。我们的生产客户使用的服务超出了您当前建议的规模。
答案 2 :(得分:0)
首先应该运行一些测试,看看你的lambda函数完成所有逻辑后你得到的实际响应时间是什么类型。如果时间高于您认为可以接受的用例,则可以使用另一个异步解决方案utilizing an SNS Topic来触发secondary Lambda function。
{fine}
成功消息 - &gt; API网关 - &gt;客户端