加入我们,于 10 月 8-10 日在纽约市学习关于 GraphQL Federation 和 API 平台工程的最新的技巧、趋势和新闻。加入我们参加 2024 年纽约市的 GraphQL 峰会
文档
免费开始

使用 Heroku 部署


Heroku 正在计划近期将淘汰免费层.

Heroku 是一个常见的平台即服务解决方案,使您能够快速部署并快速运行端点。

先决条件

在继续本指南之前,确保您已经完成了以下步骤

此外,我们还建议下载 Heroku CLI 以帮助从命令行手动推送到 Heroku:

注意,本文中介绍的 Heroku 也可以使用Heroku CLI进行。有关更多详细信息,请参阅Heroku CLI 文档

设置新的 Heroku 应用程序

首先,从您的Heroku 控制台创建一个新的应用程序,点击右上角的创建新应用按钮:

Create new Heroku app UI

为您的应用程序选择一个名称(这将成为您的<HEROKU_APP_NAME>),然后点击创建应用

Set Heroku app name UI

项目设置

您可以使用@apollo/server库以及任何Apollo Server's其他框架集成(如 Express、Fastify 等)

手动设置端口

当将服务器部署到 Heroku 上时,您的服务器 必须 监听 端口,该端口由环境变量 PORT (Heroku 自动设置) 指定。否则,您的服务器将无法接收请求并超时。

以下示例服务器监听由 process.env.PORT 指定的端口,并在未指定的情况下默认为 4000

const server = new ApolloServer({
typeDefs,
resolvers,
});
const port = Number.parseInt(process.env.PORT) || 4000;
const { url } = await startStandaloneServer(server, { listen: { port } });
console.log(`🚀 Server listening at: ${url}`);

添加 Procfile

默认情况下,Heroku 应用会在根目录中查找名为 Procfile 的文件,该文件包含应用启动时运行的命令。对于基础的 Apollo Server 应用,此文件至少应包含以下类似行:

Procfile
web: node index.js

node index.js 替换为启动您的 Apollo Server 实例所用的任何命令。

Procfile 不是在 Heroku 上运行 Apollo Server 的必要条件。如果没有提供 Procfile,Heroku 将尝试运行您的 package.json 文件中定义的 start script

部署项目

将项目推送到 Heroku 有几种方法

通过 Git 部署

请确保您已安装 Heroku CLI。然后,从终端登录 Heroku CLI。

$ heroku login

登录成功后,转到 项目根目录 并运行:

$ git init # existing git repositories can skip this
$ heroku git:remote -a <HEROKU_APP_NAME>
$ git add .
$ git commit -m "initial apollo server deployment"
$ git push heroku # specify your branch name, if necessary

部署完成后,您的 Apollo Server 项目已启动运行!您可以向部署在 Heroku 的 GraphQL 端点发送一个 ,端点地址为 <HEROKU_APP_NAME>.herokuapp.com

注意事项:

  • git push heroku 并不会向您的 origin 远程或任何其他远程推送。您必须单独再次运行 git push

  • 默认情况下,Heroku 将 NODE_ENV 变量设置为 production。如果您想更改此设置,请在项目目录中运行以下命令:

    $ heroku config:set NODE_ENV=development

    或者,您也可以通过 Heroku 控制台 配置环境变量

  • 请注意,当 Apollo Server 处于生产环境时,默认禁用 ,这将阻止像 Apollo Sandbox 这样的工具工作。

使用 GitHub 自动部署

如果您的项目已经推送到 GitHub,您可能希望设置从项目仓库的自动部署。

从您的 Heroku 控制台选择您要从 GitHub 部署的应用程序。

然后在应用的详细信息页面,选择 部署 标签。在该标签下,您可以选择部署方法并配置应用以集成 GitHub:

Configuring Heroku autodeploys

配置环境变量

要启用 Apollo Server 的生产模式,您需要设置 NODE_ENV 变量为 production。为了确保您可以在 Apollo Studio 中看到您的 GraphQL 性能,您需要将 APOLLO_KEY 环境变量添加到 Heroku。对于 API 密钥,请登录到 Apollo Studio 并浏览您的 或创建一个新的。

在您的 Heroku 应用设置标签页中,点击 显示配置变量。然后,将 NODE_ENV 设置为 production 并将 Apollo Studio 中的您的图形 API 密钥复制到 图形 API 密钥 作为 APOLLO_KEY 的值。

Adding config vars

向您的 Heroku 应用程序的 GraphQL 服务发送一条 查询,服务地址为 <HEROKU_APP_NAME>.herokuapp.com,然后检查 Apollo Studio中的跟踪数据。

上一页
Lambda
下一页
指标和日志
评价文章评价Edit on GitHubEdit论坛加入 Discord 服务器

©2024Apollo Graph Inc.,即 Apollo GraphQL。

隐私政策

公司