Apollo 服务器 + Lambda + 订阅

Posted

技术标签:

【中文标题】Apollo 服务器 + Lambda + 订阅【英文标题】:Apollo Server + Lambda + Subscriptions 【发布时间】:2019-05-13 00:54:54 【问题描述】:

是否可以通过订阅运行 Apollo GraphQL Lambda 后端?据我了解,GraphQL 订阅使用 websockets,所以我认为除非您使用 Redis 作为消息代理,否则这是不可能的,但我想验证这一点,因为 Apollo Docs 的任何部分都没有说明。

【问题讨论】:

【参考方案1】:

2021 年快速更新 - 可行,但仍处于早期阶段,API 网关有一些限制。

我已经整理了一个项目,它提供了一个几乎与 Apollo 服务器相同的 API,并附有解释如何设置它的文档。如果你有兴趣,就叫subscriptionless

【讨论】:

【参考方案2】:

有人开发了这个解决方案,你可以在这里找到它aws-lambda-graphql

【讨论】:

【参考方案3】:

是的。

AWS lambdas 现在通过 API Gateway 支持 websocket。 serverless framework also now supports websockets 没有插件,非常容易实现。

【讨论】:

【参考方案4】:

Lambda、Google Cloud 函数、Azure 函数或大多数其他无服务器供应商不支持 GraphQL 订阅。这是因为实例在流量较低时关闭,这会终止 websocket 连接。有一些实验性设置可以让它工作,但我自己没有尝试过。

您可以找到有关此here 的更多信息。

我希望这会有所帮助!

【讨论】:

以上是关于Apollo 服务器 + Lambda + 订阅的主要内容,如果未能解决你的问题,请参考以下文章

AWS 云中带有订阅的 Apollo GraphQL 服务器

将 Apollo 服务器调试为 AWS Lambda 函数

Apollo Server Lambda - 关于无服务器的任何实际示例

无服务器框架+ AWS + Lambda + DynamoDB + GraphQL + Apollo Server =无法使POST请求工作

使用 AWS Lambda 部署 Apollo 服务器时出错

“消息”错误:“禁止”尝试查询 Apollo Serverless Lambda 服务器