**发布时间:** 2026年4月25日
**分类:** 平台 · DevOps
**阅读时间:** 16 分钟
**作者:** NEXUS AI 团队
---
Serverless 对不同团队含义各异。对大多数人来说,它意味着:不用管理服务器,不用提前考虑容量问题,只为实际运行的部分付费。这个前提是对的。但具体实现——纠缠的云控制台配置、provider 特定的 YAML、以及每个云平台的 IAM 策略——正是愿景落空的地方。
NEXUS AI 通过一条 CLI 命令将容器化应用部署到 AWS App Runner、Google Cloud Run 和 Azure Container Apps。不需要云控制台,不需要 provider 特定的配置文件。自定义域名、副本扩展、一键回滚和健康检查在三个平台上体验一致。
本文详细介绍每个生产级功能:它如何工作、成本如何,以及运行所需的精确 CLI 命令。
---
## NEXUS AI 无服务器工作原理
NEXUS AI 作为部署编排层,运行在三大无服务器容器运行时之上:
| Provider | Runtime | 容器运行方式 |
|---|---|---|
| `GCP_CLOUD_RUN` | Google Cloud Run | Google 完全托管的无服务器容器平台 |
| `AWS_APP_RUNNER` | AWS App Runner | AWS 完全托管的容器运行时 |
| `AZURE_CONTAINER_APPS` | Azure Container Apps | Azure 的无服务器容器服务 |
| `LOCAL_DOCKER` | NEXUS AI 托管 | NEXUS AI 自有托管的 Docker 基础设施 |
你在部署时选择 provider。NEXUS AI 处理云端配置——服务创建、IAM、registry、网络——在几分钟内给你一个可用的 URL。切换 provider 只需在下次重新部署时改一个标志。
你的容器运行在你的云账户上(Pro 及以上版本),而不是共享的 NEXUS AI 基础设施上。数据和负载都留在你的 AWS、Google Cloud 或 Azure 环境中。
---
## 首次无服务器部署
从 Git 仓库部署,一条命令搞定:
```shell
nexus deploy source \
--name api-prod \
--repo https://github.com/your-org/your-api \
--branch main \
--provider GCP_CLOUD_RUN \
--region us-central1 \
--port 3000
```
或者部署预构建的容器镜像:
```shell
nexus deploy create \
--name api-prod \
--image ghcr.io/your-org/api:latest \
--provider AWS_APP_RUNNER \
--region us-east-1 \
--port 3000
```
3–5 分钟内,你的部署就在 `*.nexusai.run` 子域名上生效了:
```plaintext
✓ Deployment api-prod created
URL: https://api-prod.nexusai.run
Provider: AWS_APP_RUNNER (us-east-1)
Status: RUNNING
Replicas: 1
```
如果从源码部署,不需要 Dockerfile——NEXUS AI 会检测你的运行时环境并自动生成一个。无需 registry 配置、无需 IAM 策略文档、无需 VPC 配置。
---
## 环境
每个部署都属于一个环境:`DEVELOPMENT`、`STAGING` 或 `PRODUCTION`。环境会影响:
- 注入哪些 secrets(secrets 按环境隔离)
- 哪些团队成员可以部署(RBAC 强制执行环境级权限)
- 哪些 provider 可用(由组织级别的 provider 配置控制)
```shell
# 将同一个应用部署到 staging 和 production,作为独立的部署
nexus deploy source --name api-staging --env staging --provider GCP_CLOUD_RUN ...
nexus deploy source --name api-prod --env production --provider AWS_APP_RUNNER ...
```
Staging 和 production 独立运行——不同的 secrets、不同的 provider 配置、相同的代码库。Staging 上的错误部署永远不会影响 production。
---
## 自定义域名
每个部署会自动获得一个 `*.nexusai.run` 子域名。对于生产工作负载,绑定你自己的域名。
### 添加自定义域名
```shell
nexus domain add api-prod app.yourcompany.com
```
输出:
```plaintext
✓ Domain app.yourcompany.com added to api-prod
Verification: PENDING
Add this DNS record at your registrar:
Type: CNAME
Name: app
Value: api-prod.nexusai.run
```
### 验证 DNS
在你的 registrar 添加 CNAME 记录后,触发验证:
```shell
nexus domain verify api-prod
```
NEXUS AI 检查 DNS 传播情况并自动颁发 TLS 证书。验证通常在 DNS 传播后的 2–10 分钟内完成,具体取决于你的 TTL 设置。
### 根域名
子域名(`app.yourcompany.com`)和根域名(`yourcompany.com`)都支持。对于根域名,使用你的 registrar 的 ALIAS 或 ANAME 记录(或者 CNAME 扁平化,如果你的 registrar 支持的话)指向 `api-prod.nexusai.run`。
### 列出和删除域名
```shell
# 列出部署的所有域名
nexus domain list api-prod
# 删除域名
nexus domain remove api-prod
```
自定义域名适用于 Starter($29/月)及以上。免费计划仅使用 `*.nexusai.run` 子域名。
---
## 扩展
一条命令即可将运行中的部署在 1 到 10 个副本之间扩展。无需重新部署——扩展会立即应用到实时部署。
```shell
# 在高流量事件前扩展
nexus deploy scale api-prod --replicas 5
# 之后缩减回来
nexus deploy scale api-prod --replicas 2
```
输出:
```plaintext
✓ api-prod scaled to 5 replica(s)
Previous: 2
Current: 5
Provider: GCP_CLOUD_RUN
```
在 Google Cloud Run、AWS App Runner 和 Azure Container Apps 上,扩展直接应用到底层服务——NEXUS AI 调用 provider 的 API 设置副本数,变更在 30–60 秒内生效。
### 副本限制
所有计划中每个部署最多 10 个副本。对于需要超过 10 个副本的工作负载,请在云控制台上直接使用 provider 的原生自动扩展配置,与 NEXUS AI 的托管部署配合使用。
### 扩展与成本
副本在 App Runner 和 Cloud Run 上持续运行,直到你缩减回来。它们不会自动缩减到零。如果需要缩减到零,请在底层 provider 上配置最小实例数,或者使用 `nexus deploy stop` 命令在非工作时间完全停止部署。
```shell
# 非工作时间停止
nexus deploy stop api-staging
# 需要时重新启动
nexus deploy start api-staging
```
---
## 健康检查
NEXUS AI 为每个部署配置健康检查。健康检查失败的部署会自动标记——如果持续不健康超过重试阈值,会同时出现在仪表板和审计日志中。
### 配置
健康检查在部署时配置:
```shell
nexus deploy source \
--name api-prod \
--health-check-type http \
--health-check-url /health \
--health-check-interval 30 \
--health-check-timeout 3 \
--health-check-retries 3 \
--health-check-start-period 40 \
...
```
| 参数 | 默认值 | 作用 |
|---|---|---|
| `--health-check-type` | `http` | `http`、`tcp` 或 `none` |
| `--health-check-url` | `/health` | HTTP 类型检查的端点 |
| `--health-check-interval` | 30s | 检查间隔秒数 |
| `--health-check-timeout` | 3s | 每次检查最大等待时间 |
| `--health-check-retries` | 3 | 标记为不健康前的失败次数 |
| `--health-check-start-period` | 40s | 检查开始前的宽限期 |
40 秒的启动等待期是最重要的默认值。它给你的容器时间来完成初始化——Node.js 应用加载大型模型或 Java 应用 JVM 启动缓慢,不会因为还没准备好就被标记为不健康。
### 检查当前健康状态
```shell
nexus deploy status api-prod
```
```plaintext
NAME STATUS HEALTH REPLICAS RESTARTS PROVIDER UPTIME
api-prod RUNNING healthy 2 0 AWS_APP_RUNNER 14h ago
```
---
## 回滚
一条命令即可重新部署到之前已知可用的状态。无需重新构建,无需考古配置。
```shell
nexus deploy rollback api-prod
```
回滚适用于 **Pro($149/月)及以上**。免费版和 Starter 计划不支持回滚——恢复路径是通过之前的镜像标签或分支进行新部署。
### 回滚如何工作
NEXUS AI 存储之前的部署配置——镜像、环境变量、secrets 引用、provider、区域和副本数。回滚时,它使用该配置配置一个新部署。原始部署记录保留在你的历史记录中。
```shell
# 回滚前检查部署历史
nexus deploy list --json | jq '.[] | select(.name | startswith("api-prod"))'
```
```json
[
{ "name": "api-prod", "status": "FAILED", "createdAt": "2026-04-25T14:22:00Z" },
{ "name": "rollback-k3x9ab2", "status": "RUNNING", "createdAt": "2026-04-25T14:30:00Z" }
]
```
回滚部署会获得一个生成的名称(`rollback-{timestamp}`),并以与原始部署相同的副本数运行。
---
## Secrets 和环境变量
Secrets 在运行时注入——绝不 baked 到容器镜像中。设置一次,它们在重新部署时同样可用。
```shell
# 在 vault 中存储 secrets
nexus secret set DATABASE_URL "postgres://..." --environment production
nexus secret set STRIPE_SECRET_KEY "sk_live_..." --environment production
nexus secret set OPENAI_API_KEY "sk-..." --environment production
# 部署——secrets 自动注入
nexus deploy source --name api-prod --env production ...
```
你的应用像读取标准环境变量一样读取它们:
```javascript
const db = new Pool({ connectionString: process.env.DATABASE_URL });
```
无 SDK。无需启动时获取。无冷启动惩罚。Secrets 在 NEXUS AI 控制平面解密,并在第一个进程启动前注入到容器 spec 中。
非 secrets 的环境变量可以在部署时直接传入:
```shell
nexus deploy source \
--name api-prod \
--env-var NODE_ENV=production \
--env-var LOG_LEVEL=info \
--env-var PORT=3000 \
...
```
---
## 多服务部署
NEXUS AI 支持 Docker Compose 部署,适用于需要多个服务协同运行的应用——例如 API、后端 worker 和 Redis sidecar。
```shell
nexus deploy source \
--name platform-prod \
--repo https://github.com/your-org/platform \
--compose \
...
```
指定 `--compose` 时,NEXUS AI 读取你的 `docker-compose.yml`,为每个服务配置一个部署,并在同一个项目中连接它们。服务可以通过名称在内部网络上相互引用。
---
## 重新部署
推送新镜像或从源码重新构建,无需更改任何配置:
```shell
# 从相同源码重新部署(从分支拉取最新版本)
nexus deploy redeploy api-prod
# 或使用 Access Token 从 CI/CD 触发
NEXUS_API_KEY=nxk_... nexus deploy redeploy api-prod
```
云 provider(AWS App Runner、Google Cloud Run、Azure Container Apps)上的重新部署在 60–90 秒内完成。新版本通过健康检查前,旧版本会保持运行——默认零停机。
---
## CI/CD 集成
使用 NEXUS AI 的典型 GitHub Actions 流水线:
```yaml
name: Deploy to production
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build and push image
run: |
docker build -t ghcr.io/${{ github.repository }}:${{ github.sha }} .
docker push ghcr.io/${{ github.repository }}:${{ github.sha }}
- name: Deploy to NEXUS AI
env:
NEXUS_API_KEY: ${{ secrets.NEXUS_API_KEY }}
run: |
npx nexus-cli deploy redeploy api-prod
```
流水线 token 仅使用 `deploy:write` 范围——它无法读取 secrets、修改配置或触碰其他部署。一个泄露的流水线 token 只是一个重新部署触发器,仅此而已。
---
## 自动销毁
临时部署——review 应用、QA 环境、演示实例——可以设置为在固定时间窗口后自动销毁:
```shell
# 启动一个 24 小时后自动销毁的 review 部署
nexus deploy source \
--name pr-1234-review \
--auto-destroy 24h \
...
```
部署正常运行直到截止时间,然后自动停止并清理云资源。无需手动拆除,不会月末收到遗忘的 review 应用账单。
---
## 实时日志
为任何部署流式传输构建和运行时日志:
```shell
# 跟随运行时日志
nexus deploy logs api-prod --follow
# 获取最后 200 行
nexus deploy logs api-prod --tail 200
# 按关键词过滤
nexus deploy logs api-prod --follow | grep ERROR
```
日志在容器写入 stdout/stderr 的几秒内即可用。构建日志(镜像构建、Dockerfile 执行、依赖安装)也可以通过同一命令加上 `--build` 参数访问。
---
## 方案对比
| 功能 | 免费版 | Starter($29/月) | Pro($149/月) | 企业版 |
|---|---|---|---|---|
| 部署数 | 1 | 2 | 5 | 无限制 |
| Provider | Managed Docker | Docker + Google Cloud | 全部 4 个 provider | 全部 4 个 provider |
| 自定义域名 | — | ✓ | ✓ | ✓ |
| 回滚 | — | — | ✓ | ✓ |
| Secrets | 3 | 20 | 100 | 无限制 |
| 团队成员 | 0 | 3 | 10 | 无限制 |
| AI 生成次数/天 | 1 | 10 | 无限制 | 无限制 |
| 你的云账户 | — | ✓ | ✓ | ✓ |
| 副本扩展(1–10) | ✓ | ✓ | ✓ | ✓ |
| 健康检查 | ✓ | ✓ | ✓ | ✓ |
| 审计日志 | ✓ | ✓ | ✓ | ✓ |
---
## 部署命令参考
```shell
# 从源码部署
nexus deploy source --name --repo --branch --provider --port
# 从镜像部署
nexus deploy create --name --image --provider --port
# 重新部署(相同配置,新构建)
nexus deploy redeploy
# 扩展副本(1–10)
nexus deploy scale --replicas
# 回滚到之前版本(Pro+)
nexus deploy rollback
# 停止 / 启动
nexus deploy stop
nexus deploy start
# 查看状态
nexus deploy status
# 流式日志
nexus deploy logs --follow
# 列出部署
nexus deploy list
# 删除部署
nexus deploy delete
# 自定义域名
nexus domain add
nexus domain verify
nexus domain list
nexus domain remove
```
---
## 检查清单:生产就绪的无服务器部署
- [ ] 首次部署前通过 `nexus secret set` 设置所有 secrets——零明文环境变量
- [ ] 配置 `--health-check-url` 匹配你应用的实际健康端点
- [ ] 将 `--health-check-start-period` 设置为至少你的应用冷启动时间
- [ ] 为 CI/CD 创建范围限定的 `deploy:write` token——永远不要在流水线中使用个人 token
- [ ] 在公布 URL 前添加你的自定义域名并验证 DNS
- [ ] 首次生产部署时运行 `nexus deploy status --watch`,尽早发现健康检查失败
- [ ] 为 review 和 QA 部署设置 `--auto-destroy`——防止意外账单
- [ ] 生产环境至少扩展到 2 个副本——单副本部署没有冗余
---
## 常见问题
**我应该使用哪个云 provider?**
大多数工作负载:Google Cloud Run(`GCP_CLOUD_RUN`)凭借其从零到运行的快速启动和全球网络;AWS App Runner(`AWS_APP_RUNNER`)如果你的团队已经在 AWS 上并希望所有资源在同一个账户;Azure Container Apps(`AZURE_CONTAINER_APPS`)用于 Microsoft 技术栈集成。从 NEXUS AI CLI 角度来看,三者行为完全一致。
**NEXUS AI 支持缩减到零吗?**
CLI 没有原生托管支持——副本按你设置的数字持续运行。底层 provider(Cloud Run、Container Apps)在云控制台上原生支持缩减到零;你可以配合 NEXUS AI 的部署一起配置。`nexus deploy stop` 完全停止部署,在非生产环境的空闲期间实现零成本。
**我可以自带 Dockerfile 吗?**
可以。如果你的仓库包含 `Dockerfile`,NEXUS AI 会使用它。否则会根据检测到的运行时(Node.js、Python、Go、Java 等)自动生成。你也可以通过 `--dockerfile` 明确指定 Dockerfile 路径。
**在 Cloud Run 和 App Runner 上回滚如何工作?**
NEXUS AI 存储你之前的部署配置,并用它配置一个新部署——它不使用 provider 原生的修订版回滚。这意味着回滚在所有四个 provider 上行为一致,并保留每个部署状态变更的清晰审计轨迹。
**如果部署健康检查失败会怎样?**
部署状态变为 `FAILED` 或 `UNHEALTHY`。对于云 provider,之前的修订版继续运行(Cloud Run 和 Container Apps 保持最后一个健康修订版处于活跃状态)。你会在审计日志中看到 `DEPLOYMENT_FAILED` 事件,包含退出码和错误信息。运行 `nexus deploy logs ` 查看问题所在,然后重新部署或回滚。
**我可以在一个部署中运行多个服务(API + worker + DB)吗?**
使用 `--compose` 部署 Docker Compose 文件。Compose 文件中的每个服务成为同一部署下被追踪的服务,连接在内部网络上。外部数据库连接应使用 NEXUS AI secrets,而非运行数据库容器——临时容器不是可靠的数据库宿主。
---
## 下一步
从一条命令开始。如果你的应用已经容器化:
```shell
nexus deploy create \
--name my-app \
--image your-registry/your-app:latest \
--provider GCP_CLOUD_RUN \
--port 3000
```
不到 5 分钟你就有一个可用的 URL。添加自定义域名、配置 secrets、设置 CI/CD 流水线——整个生产级设置不到一小时。
NEXUS AI Starter 计划起价 $29/月。包含自定义域名、Google Cloud Run 部署和最多 3 名团队成员。从 nexusai.run 开始
**相关阅读:**
- [Stop shipping secrets. Start using a vault.]()
- [RBAC deep dive: roles, scopes, and least privilege]()
- [Audit logs and compliance: what gets recorded and why]()
- [MCP integration: 37 tools for Claude and AI agents]()
---
*无需云控制台。无需 YAML。一条命令,从提示到生产。*