• 产品简介
  • 快速开始
    • Agent 开发
    • 导入 Git 仓库
    • 从模板开始
    • 直接上传
    • 从 AI 开始
  • 框架指南
    • Agent
    • 前端
      • Vite
      • React
      • Vue
      • Hugo
      • 其他框架
    • 后端
    • 全栈
      • Next.js
      • Nuxt
      • Astro
      • React Router
      • SvelteKit
      • TanStack Start
      • Vike
    • 自定义 404 页面
  • 项目指南
    • 项目管理
    • edgeone.json
    • 缓存配置
    • 构建输出配置
    • 域名管理
      • 概览
      • 自定义域名
      • 配置 HTTPS 证书
        • 概览
        • 申请免费证书
        • 使用 SSL 托管证书
      • 配置 DNS 的 CNAME 记录
    • 错误码
  • 构建指南
  • 部署指南
    • 概览
    • 触发部署
    • 管理部署
    • 部署按钮
    • 使用 Github Action
    • 使用 Gitlab CI/CD
    • 使用 CNB 插件
    • 使用 IDE 插件
    • 使用 CodeBuddy IDE
  • Makers for Platforms
    • 平台与多租户
    • Vibe Coding 解决方案
    • 模板示例
      • Vibe Coding 通用模板
      • Vibe Coding 平台模板
  • 可观测性
    • 概览
    • 指标分析
    • 日志分析
  • Functions
    • 概览
    • Edge Functions
    • Cloud Functions
      • 概览
      • Node.js
      • Python
      • Go
  • Agents
    • 概览
    • 快速开始
    • 会话管理
    • 可观测
    • 沙箱工具
      • 概览
      • Agent 框架使用
      • 沙箱原子 API
      • 网络搜索工具
    • Agent 应用鉴权
  • Models
    • 概览
    • 模型与厂商
      • 概览
      • 使用朱雀模型
      • 使用 Jev 模型
      • 使用厂商密钥
        • OpenAI
        • Anthropic
        • Google AI Studio
        • DeepSeek
        • MiniMax
        • 混元
        • 智谱
        • 月之暗面
    • 常见问题
  • 存储
    • 概览
    • KV
    • Blob
  • 中间件
  • AI 原生开发
    • Skills
    • MCP
    • Plugin
  • Copilot
    • 概览
    • 快速开始
  • API Token
  • EdgeOne CLI
  • Makers SDK
    • 概览
    • 示例
      • 通过 SDK 部署
      • 通过 CLI 部署
      • 项目管理
    • 项目
      • 项目操作
      • 环境变量
    • 部署
  • 消息通知
  • 集成指南
    • AI
      • Makers Models 集成
      • 图片大模型集成
    • 数据库
      • Supabase 集成
      • Pages KV 集成
    • 电商
      • Shopify 集成
      • WooCommerce 集成
    • 支付
      • Stripe 集成
      • Paddle 集成
    • CMS
      • WordPress 集成
      • Contentful 集成
      • Sanity 集成
      • Payload 集成
    • 身份验证
      • Supabase 集成
      • Clerk 集成
    • IM
      • 概览
      • 企业微信
      • 飞书
      • 钉钉
      • Telegram
      • Slack
      • Discord
  • 最佳实践
    • 为网站添加 AI 对话助手
    • AI 对话式部署:使用 Skill 一句话部署项目
    • 使用 Makers Agents 快速搭建 Agent 应用
    • 使用 Shopify 搭建电商平台
    • 使用 Supabase 和 Stripe 搭建 SaaS 站点
    • 如何快速搭建公司品牌站点
    • 如何快速搭建博客站点
    • 在 WorkBuddy 中通过免登录部署快速上线
  • 迁移指南
    • 从 Vercel 迁移至 EdgeOne Makers
    • 从 Cloudflare Pages 迁移至 EdgeOne Makers
    • 从 Netlify 迁移至 EdgeOne Makers
  • 排障指南
  • 常见问题
  • 限制与配额
  • 价格与套餐
  • 联系我们
  • 产品动态

通过 CLI 部署

在 Vibe Coding 场景中,Agent 生成基于 Makers 能力的项目后,可通过 CLI 在沙箱中启动开发环境供用户实时预览,并在效果确认后将项目部署上线。

安装 CLI

如果您使用自建或第三方沙箱,可将 CLI 预装到沙箱镜像中,使 Agent 能够在隔离工作区内直接调用 edgeone 命令完成预览与部署。如果你使用的是 Makers 平台的沙箱,可以跳过这一步,因为它已经预置了 CLI。
说明:此 CLI 安装包面向 Vibe Coding 沙箱场景进行了精简,主要提供开发环境启动与应用部署能力。
您可以直接下载 CLI 安装包并自行安装,也可以参考示例脚本,在镜像构建阶段完成安装:
COPY scripts/install-edgeone-cli.example.sh /tmp/install-edgeone-cli.sh
RUN bash /tmp/install-edgeone-cli.sh && rm /tmp/install-edgeone-cli.sh
示例脚本会从固定地址下载并解压 CLI 安装包,将文件安装到系统目录,并创建可通过 PATH 直接调用的 edgeone 命令入口。镜像构建完成后,可执行 edgeone --version 验证安装结果。

签发租户 Token

在沙箱环境中使用 CLI 部署时,应避免使用平台级凭证,可在 Agent 运行时签发租户级 Token,供 CLI 启动预览和执行部署时使用。
Typescript
Python
import { Makers } from "@edgeone/makers-sdk";

const platform = new Makers({
token: process.env.MAKERS_API_TOKEN,
region: "china",
});

const { token, tokenId, expired } = await platform.tokens.create({
tenantId: "user-open-id",
name: "user-open-id",
expiresIn: 86400,
});
import os

from makers_sdk import Makers

platform = Makers(
token=os.environ["MAKERS_API_TOKEN"],
region="china",
)

created = platform.tokens.create(
tenant_id="user-open-id",
name="user-open-id",
expires_in=86400,
)

启动预览

Agent 在运行时拼出启动预览的命令字符串,并以参数形式传入租户 Token,再通过沙箱的 commands 工具调用 EdgeOne CLI 启动项目预览。

export function buildMakersDevLaunchCommand(port: number, projectName: string) {
return `edgeone makers dev -t ${token} --port ${port} --skip-env-sync --name ${shellQuote(projectName)}`;
}

执行部署

Agent 在运行时拼出部署的命令字符串,并以参数形式传入租户 Token,再通过沙箱的 commands 工具调用 EdgeOne CLI 执行部署。

function makersDeployLaunch(projectName: string, requestedCommand: string, area = 'global') {
const previewEnvironment = /(?:^|\s)(?:-e|--environment)(?:\s+|=)preview(?:\s|$)/i
.test(requestedCommand);
return [
'edgeone makers deploy',
`-t ${token}`,//租户 token
`-n ${shellQuote(projectName)}`,
'--json',
`--area ${area}`,
previewEnvironment ? '-e preview' : '',
].filter(Boolean).join(' ');
}

ai-agent