Zephyr Cloud

将 Nitro 应用部署到 Zephyr Cloud。

预设: zephyr

Read more in Zephyr Cloud 文档.

对于大多数 Zephyr 特定主题,例如 BYOC、云集成、环境和 CI/CD 认证,请参阅 Zephyr Cloud 文档

Note

Zephyr 与大多数 Nitro 部署提供商有所不同。它不是直接面向单一托管供应商,而是作为部署控制平面,运行在 Zephyr 管理的基础设施或你自己的云集成之上。

#BYOC 模式

Zephyr 支持 BYOC(自带云)模式。在 Zephyr 的架构中,控制平面由 Zephyr 管理,而数据平面(工作进程和存储)则运行在你的云账户中。

这使你可以在使用任何受支持的 Zephyr 云集成的服务的同时,保持 Zephyr 的部署工作流程。有关当前支持的提供商列表,请参阅 Zephyr BYOC 文档

#使用 Nitro CLI 部署

使用 Nitro 的部署命令,一键完成构建并上传应用到 Zephyr:

npx nitro deploy --preset zephyr

Nitro 将使用 zephyr-agent 上传生成的输出。如果缺少 zephyr-agent,Nitro 将提示在本地安装,并会在 CI 环境中自动安装。

#构建时部署

对于 Zephyr,推荐的工作流程是在 nitro build 期间进行部署,并将构建视为主要部署步骤。

如果你的 CI 流水线已经运行 nitro build,请在构建步骤期间启用部署:

nitro.config.ts
import { defineConfig } from "nitro";

export default defineConfig({
  preset: "zephyr",
  zephyr: {
    deployOnBuild: true,
  },
});

这样你正常的构建命令就足够了:

npm run build

构建完成后,Nitro 会将生成的输出上传到 Zephyr,部署到边缘节点,并打印部署 URL:

◐ Building [Nitro] (preset: zephyr, compatibility: YYYY-MM-DD)
...
ZEPHYR   Uploaded local snapshot in 110ms
ZEPHYR   Deployed to Zephyr's edge in 700ms.
ZEPHYR
ZEPHYR   https://my-app.zephyrcloud.app

#CI 认证

Zephyr 要求非交互式部署使用 API 令牌。下面的示例使用更简单的个人令牌设置,将 ZE_SECRET_TOKENzephyr.deployOnBuild 配合使用。

.github/workflows/deploy.yml
name: Deploy with Zephyr

on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: ubuntu-latest
    env:
      ZE_SECRET_TOKEN: ${{ secrets.ZEPHYR_AUTH_TOKEN }}
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 20
      - run: npm ci
      - run: npm run build

对于更高级的 CI/CD 设置,Zephyr 还记录了使用 ZE_SERVER_TOKEN 的组织级服务器令牌认证。请参阅 Zephyr CI/CD 服务器令牌文档

#选项

#zephyr.deployOnBuild

在使用 zephyr 预设时,在 nitro build 期间部署到 Zephyr。

  • 默认值:false