用途
alibabacloud-ecs-code-deploy 是一个基于 aliyun appmanager 的技能,用于把项目代码一键部署到阿里云 ECS 云服务器。它把「环境预检 → 询价 → 部署 → 日志验证 → 失败诊断重试」串成完整流程,同时支持 App 与 AI Agent 两类项目(如 LangChain / AutoGen / AgentScope / MCP / FastAPI / Flask / Spring 等)。
主要能力
- 一键部署应用(App)与 AI Agent 到阿里云 ECS。
- 支持非交互模式(--non-interactive)、结构化 JSON 输出(--output json)和流式 NDJSON 响应。
- 部署链路包含环境预检、部署前询价与风险提示、部署、日志验证、失败诊断与重试。
- 默认行为:未指定项目路径或 URL 时,部署当前工作目录的项目;提供 git URL 时,先克隆到当前目录再部署。
使用方式
技能以强制任务清单驱动执行,清单包括:解析 $SKILL_DIR、环境预检、获取项目、读取项目并识别类型、向用户询问部署配置、初始化并生成脚本、部署前询价与风险提示、部署、验证、输出最终结果。
关键约定包括:
- 预检、初始化、部署、验证等步骤要求直接运行配套脚本 $SKILL_DIR/scripts/deploy_toolkit.py 的对应子命令,手工命令仅在脚本文件缺失时作为回退。
- 一开始必须先解析 $SKILL_DIR 绝对路径,并可在会话中复用;禁止硬编码平台专用路径。
- 每次 aliyun CLI 调用需携带本技能 User-Agent(形如 AlibabaCloud-Agent-Skills/alibabacloud-ecs-code-deploy/{session-id}),session-id 每个会话生成一次并全程复用;不支持旧的 aliyun configure ai-mode 机制。
- 凭据优先使用 OAuth(aliyun configure --mode OAuth --profile oauth),不建议在对话中收集 AK/SK;如使用 AK,仅提供命令模板由用户自行在终端执行。禁止单独运行 appmanager 或 aliyun appmanager login。
- 初始化项目时先读 README.md,按其提供的构建/运行方式优先选择原生 CLI 或包管理器安装、原生构建运行、脚本部署,最后才考虑 Docker/docker-compose;初始化会生成 .appmanager/config.yaml,不支持 --overwrite。
- 部署脚本需写入 config.yaml 的 common.scripts.start 与 common.scripts.stop;start 脚本必须包含解压 zip、安装运行时、日志写 /root/app.log、PID 写 /root/app.pid 等固定约定,stop 脚本不得包含 exit。
适用场景
需要把本地或仓库中的项目代码快速部署到阿里云 ECS 的场景,包括 Web 服务、AI Agent 服务与工具类应用;需要可重复、可验证的标准部署流程的场景。
限制
- 部署目标限定为阿里云 ECS,依赖 aliyun CLI 与 appmanager。
- CLI 版本要求不低于 3.3.19(资料中提及的版本门槛),缺少时按要求安装或升级。
- 区域、ECS 目标、端口等配置需用户确认;区域需贯穿到 init 与后续 price/deploy/verify 调用,否则可能报 InvalidParameter: DeployRegionId is invalid。
- 部署脚本运行在裸机 Linux 上(通常为 Alibaba Cloud Linux,基于 RHEL,使用 yum/dnf)。
- 关于计费、价格与镜像可访问性等细节,资料中给出询价与风险提示要求,但未给出具体价格数值;此类信息暂未提供。