是否可以将 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?的主要内容,如果未能解决你的问题,请参考以下文章

是否可以将持久底片作为片段?

是否可以将对象设置为空?

是否可以将 MPMoviePlayerController 静音?

是否可以将数据传递给css文件?

是否可以将 Lua 脚本修改为要求?

是否可以将 iOS MultipeerConnectivity 与 android 连接?