0

我一直在阅读有关新 AWS Lambda 技术的信息,并且一直在尝试他们的一些示例。我真正想做的是在我们将新数据文件上传到 S3 时向客户提供新内容,但我不清楚是否或如何做到这一点。

我可以看到我可以在 lambda 中运行脚本来记录对 S3 的更改,但是如何将这些更改与在浏览器中运行的客户端脚本同步。那可能吗?

显然,我可以轮询存储桶对象并在它更改时显示新内容,但是当它改变 node.js 的方式时,有没有办法将数据推出?然后,当它没有变化时,我就不需要不断地击打它。

4

1 回答 1

0

我不认为真的有任何形式的推动机制在起作用。Push 需要一个服务器来监听响应。这意味着从技术上讲,发生这种情况的唯一方法是让每个客户端运行一个正在侦听 tcp 端口的服务。对于移动客户端,他们实际上是在监听 SMS 消息。

在大多数情况下,push 实际上仍然是堆栈不同级别的 pull。即使在顶级应用程序中,代码也可能允许推送范式,但如果我们查看低一级的代码,它可能是拉取。

例如,如果您确实设计了查询 S3 或 lambda 或更新的定期 JS 脚本。客户端 UI 不会知道它正在这样做,所以这对他们来说似乎是一种推动;神奇的数据被流式传输到他们的客户端,就像流式视频的工作方式一样。

我建议咬紧牙关,在 API Gateway 中设置一个缓存,并在 S3 更改时使用预期的 TTL,然后让客户端查询该资源。

于 2016-04-21T04:11:58.767 回答