express-graphql 中的 serverless vs serverfull?

Posted

技术标签:

【中文标题】express-graphql 中的 serverless vs serverfull?【英文标题】:serverless vs serverfull in express-graphql? 【发布时间】:2021-04-25 07:47:00 【问题描述】:

我将自己介绍给无服务器并偶然发现:https://github.com/serverless-components/express 并且似乎无法理解部署到 heroku 的 serverfull 有什么区别?看到我在无服务器中有这个代码:

app.use(
  "/graphql",
  graphqlHTTP(async (request) => 
    // add user context
    console.log("test");
    return 
      schema,
      graphiql: true,
      context: 
        request,
        //user
      ,
    ;
  )
);

module.exports = app;

和满服务器:

app.use(
  "/graphql",
  graphqlHTTP(async (request) => 
    // add user context
    return 
      schema,
      graphiql: true,
      context: 
        request,
      ,
    ;
  )
);

app.listen(port, () => console.log(`Listening on port $port`));

有人可以告诉我在 express-graphql 中使用无服务器是否有优势?我的前端堆栈是 graphql-relay,我习惯于 express-graphql 并想使用 express-graphql 堆栈探索无服务器,但似乎找不到一个好的资源来做到这一点。正如我正在阅读this:

在这一点上,我认为值得注意的是,并非所有人都同意 在无服务器函数中运行 Express 是个好主意。作为保罗 Johnston 解释说,如果你正在为规模构建函数,它是 最好将每个功能分解成自己的功能 单一用途的功能。以我的方式使用 Express 意味着每个 当请求到达 API 时,整个 Express 服务器必须 从头开始 - 效率不高。部署到生产环境 风险自负。

请解释一下

【问题讨论】:

【参考方案1】:

无服务器的一些好处:与将 24/7 全天候运行的传统服务器相比,您仅在需要时才按需执行代码。 此外,它还由服务提供商管理,因此您无需担心维护和扩展您的服务器。

你可以阅读更多

https://dashbird.io/blog/business-benefits-of-serverless

https://www.serverless.com/blog/running-scalable-reliable-graphql-endpoint-with-serverless

https://aws.amazon.com/serverless/

https://serverless.com/blog/serverless-architecture-code-patterns/

【讨论】:

以上是关于express-graphql 中的 serverless vs serverfull?的主要内容,如果未能解决你的问题,请参考以下文章

使用 express-graphql 和 HTTP 客户端从 graphql 获取数据

express-graphql 中的 serverless vs serverfull?

express-graphql 解析器参数在解析器中为空,但 info variableValues 填充了名称和值

Express-graphql“在运行突变和查询时无法使用 mongodb 读取未定义的属性‘集合’”

节点 express-graphql 应用程序中使用的 Prisma 2 DateTime 字段

使用 Express-GraphQL 的 GraphQL 订阅