【问题标题】:Deploying Apollo GraphQL Server on Azure在 Azure 上部署 Apollo GraphQL 服务器
【发布时间】:2019-02-03 07:10:18
【问题描述】:

我正在尝试在 Azure 上部署基于 Javascript 的示例 Apollo GraphQL Server,但它无法正常工作。尝试了以下方法

1) Create Azure Web App (Linux + Node Runtime) with ZipDeploy of tested app
2) Create Web App with Node Starter template and do ZipDeploy
3) Create Ubuntu VM and install Node+NPM followed by deploying app

在上述所有情况下,我都怀疑是端口问题,但我找不到正确的调整。使用以下教程创建了带有 apollo 服务器的示例 NodeJS 应用程序

https://www.apollographql.com/docs/apollo-server/getting-started.html

如果有人成功部署了apollo graphql server,请指教

【问题讨论】:

    标签: azure azure-web-app-service graphql apollo-server


    【解决方案1】:

    Docker 化一个 Node 应用程序并部署到您最喜欢的主机,同时公开正确的端口。 Azure 容器服务可能不是最佳选择,因为它非常昂贵。

    【讨论】:

      【解决方案2】:

      您应该能够像将任何其他 node.js Web 应用程序部署到 Azure 应用服务一样部署此 node.js Web 应用程序。所以在不知道更多细节的情况下,我会说#1。

      【讨论】:

        【解决方案3】:

        选项 1 应该可以正常工作。正如 OP 所暗示的那样,如果您不设置端口,您将遇到问题。 Azure 通过process.env.PORT 公开端口供您设置。这是带有所需调整的 Apollo 示例:

        const server = new ApolloServer({
          typeDefs,
          resolvers
        });
        
        // Azure will set `process.env.port` so use it (or 4000 for local dev)
        server.listen({ port: process.env.PORT || 4000 }).then(({ url }) => {
          console.log(`?  Server ready at ${url}`);
        });
        

        当使用核心apollo-server包中的ApolloServer时,底层实现使用节点http包(https://nodejs.org/api/http.html)。

        我们传递给ApolloServer.listen 方法的任何选项都会传递给http.Server.listen (https://nodejs.org/api/http.html#http_server_listen)。

        这里是接收到的选项被传递到 httpServer 的地方:https://github.com/apollographql/apollo-server/blob/a3282a2d7df0c20d9e10b058defae835120fa5b1/packages/apollo-server/src/index.ts#L152

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-12-03
          • 1970-01-01
          • 1970-01-01
          • 2020-12-25
          • 2020-10-28
          • 1970-01-01
          • 1970-01-01
          • 2021-12-02
          相关资源
          最近更新 更多