无服务器GraphQL订阅

Dan*_*Dan 8 aws-lambda graphql serverless-framework graphql-subscriptions aws-appsync

我最近开始使用GraphQL,并且能够在AWS Lambda上成功设置它,为我提供了"无服务器"架构.但是,我想利用GraphQL订阅来获得更多实时功能.

我了解AWS Lambda不允许使用WebSockets,因为只要函数运行或达到超时限制,连接就会持续.

但是有没有办法设置GraphQL后端,以便它可以利用订阅并将其保留在AWS服务中,并使其像"无服务器"应用程序一样扩展.

类似于使用AWS Lambda进行GraphQL查询和变异,然后使用不同的AWS服务进行GraphQL订阅.

Dan*_*ord 7

AWS AppSync本周(11月29日)宣布支持graphQL订阅.


Zan*_*non 0

IoT 是 AWS 上唯一支持 WebSocket 的无服务器服务。我知道这个名字听起来很奇怪,但它对于网络浏览器来说效果很好。

您需要在前端捆绑AWS IoT SDK,以订阅和发布主题,并使用 Cognito 或 IAM 检索客户端的临时凭证。您可以设置限制,以便客户端只能订阅/发布特定主题。

我不确切知道 GraphQL 订阅是如何工作的,但我想象您的客户端将订阅一个主题,并且每次数据更改时,都会触发一个 Lambda 函数。该 Lambda 将能够向主题发布通知,并且订阅该主题的所有客户端都将收到该消息。