无服务器GraphQL订阅

时间:2017-07-01 18:05:41

标签: aws-lambda graphql serverless-framework graphql-subscriptions aws-appsync

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

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

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

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

3 个答案:

答案 0 :(得分:7)

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

答案 1 :(得分:0)

在AWS上支持WebSockets的唯一无服务器服务是IoT。我知道这个名字听起来很奇怪,但它适用于网络浏览器。

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

我不确切知道GraphQL订阅的工作原理,但我想您的客户将订阅一个主题,每次数据发生变化时,都会触发一个Lambda函数。此Lambda将能够向主题发布通知,订阅此主题的所有客户端都将收到该消息。

答案 2 :(得分:0)

我已经开始使用谷歌云功能,但后来转移到zeit现在无服务器,但我也能够使用订阅。也许你也可以看一下