我一直在阅读有关新 AWS Lambda 技术的信息,并且一直在尝试他们的一些示例。我真正想做的是在我们将新数据文件上传到 S3 时向客户提供新内容,但我不清楚是否或如何做到这一点。
我可以看到我可以在 lambda 中运行脚本来记录对 S3 的更改,但是如何将这些更改与在浏览器中运行的客户端脚本同步。那可能吗?
显然,我可以轮询存储桶对象并在它更改时显示新内容,但是当它改变 node.js 的方式时,有没有办法将数据推出?然后,当它没有变化时,我就不需要不断地击打它。
我一直在阅读有关新 AWS Lambda 技术的信息,并且一直在尝试他们的一些示例。我真正想做的是在我们将新数据文件上传到 S3 时向客户提供新内容,但我不清楚是否或如何做到这一点。
我可以看到我可以在 lambda 中运行脚本来记录对 S3 的更改,但是如何将这些更改与在浏览器中运行的客户端脚本同步。那可能吗?
显然,我可以轮询存储桶对象并在它更改时显示新内容,但是当它改变 node.js 的方式时,有没有办法将数据推出?然后,当它没有变化时,我就不需要不断地击打它。
我不认为真的有任何形式的推动机制在起作用。Push 需要一个服务器来监听响应。这意味着从技术上讲,发生这种情况的唯一方法是让每个客户端运行一个正在侦听 tcp 端口的服务。对于移动客户端,他们实际上是在监听 SMS 消息。
在大多数情况下,push 实际上仍然是堆栈不同级别的 pull。即使在顶级应用程序中,代码也可能允许推送范式,但如果我们查看低一级的代码,它可能是拉取。
例如,如果您确实设计了查询 S3 或 lambda 或更新的定期 JS 脚本。客户端 UI 不会知道它正在这样做,所以这对他们来说似乎是一种推动;神奇的数据被流式传输到他们的客户端,就像流式视频的工作方式一样。
我建议咬紧牙关,在 API Gateway 中设置一个缓存,并在 S3 更改时使用预期的 TTL,然后让客户端查询该资源。