是否可以将 apollo-server-express 部署到 lambda?
Posted
技术标签:
【中文标题】是否可以将 apollo-server-express 部署到 lambda?【英文标题】:Is it possible to deploy apollo-server-express to lambda? 【发布时间】:2021-05-13 18:32:39 【问题描述】:我有一个使用 apollo-server-express 实现的后端项目。我研究了如何将它部署到 lambda,发现我需要为此使用 apollo-server-lambda。
我不熟悉 GraphQL 和 AWS lambda。我不知道这 2 个包 - apollo-server-express 和 apollo-server-lambda 之间的区别。
有什么简单的方法可以将 apollo-server-express 转换为 apollo-server-lambda?
或者是否可以将此实现直接部署到 AWS lambda?
我尝试使用无服务器部署此项目,因为它是一个简单的快速应用程序,但它因 6 秒超时而失败。
【问题讨论】:
你运气好吗? 【参考方案1】:我遇到了同样的问题,因为我使用 apollo-server-express
编写了一个 graphql 服务器,我必须将它部署到 aws lambda 所以需要让它使用 apollo-server-lambda
。
自从Apollo 3,apollo-server-lambda
在后台使用apollo-server-express
。
因此,无需使用 apollo-server-lambda
从头开始编写 graphql 服务器,您只需从中导入 ApolloServer
,然后将您现有的 express 应用程序与所有中间件一起提供给它,详情如下:https://www.apollographql.com/docs/apollo-server/deployment/lambda/#customizing-http-serving
然后您需要修改上下文以从express
参数中读取req
值,而不是像在apollo-server-express
中那样直接读取req
。你可以关注这个:https://www.apollographql.com/docs/apollo-server/deployment/lambda/#getting-request-info
如果您使用某些数据库,您需要做的最后一件事是使其重用 aws lambda 中的连接,但这与 apollo-server
并不严格相关。
如果有帮助,你可以看看我是怎么做到的here,express
中的所有代码都被注释掉了,所以区别是可见的。
【讨论】:
以上是关于是否可以将 apollo-server-express 部署到 lambda?的主要内容,如果未能解决你的问题,请参考以下文章