用途
该技能适用于 MEO(Multi-site Enterprise Operations)订阅,用于管理代码部署操作。部署代表在 MEO 环境中运行的代码部署过程,用户可通过该技能监控、停止或终止部署。
主要能力
- 检查部署状态:查看运行中或已完成部署的状态,包括 pending、running、completed、failed、stopped、terminated,以及开始时间和错误信息。
- 列出环境下的部署:支持分页和过滤,例如限制数量、按创建时间排序。
- 优雅停止部署:发送停止请求,部署完成当前步骤后暂停。
- 强制终止部署:立即终止部署进程,属于破坏性操作,需明确批准,可能导致站点处于部分部署状态。
- 配置代码部署并发:获取或更新环境中并行部署的站点实例数量。
- 启动部署:从环境资源发起,使用
acli api:v3:environments:create-deployment命令,返回 deploymentId 用于跟踪。
使用方式
所有命令均使用 acli api:v3:* 格式。可通过 acli list api:v3:deployments 查看所有当前部署命令。
启动部署:
acli api:v3:environments:create-deployment <environmentId> <run_hooks> <code_reference>
示例:
# 部署 main 分支并启用钩子
acli api:v3:environments:create-deployment <environmentId> true refs/heads/main
# 部署标签且不启用钩子
acli api:v3:environments:create-deployment <environmentId> false refs/tags/1.5.0
# 部署并传递钩子参数
acli api:v3:environments:create-deployment <environmentId> true refs/heads/main \
--hooks_argument="production"
检查部署状态:
acli api:v3:deployments:find <deploymentId>
列出环境部署:
acli api:v3:environments:list-deployments <environmentId>
支持分页和过滤:
acli api:v3:environments:list-deployments <environmentId> --limit=10 --sort=-created
停止部署:
acli api:v3:deployments:stop <deploymentId>
终止部署:
acli api:v3:deployments:terminate <deploymentId>
获取代码部署并发设置:
acli api:v3:environments:find-code-deploy <environmentId>
更新代码部署并发:
acli api:v3:environments:update-code-deploy <environmentId> <concurrency>
典型工作流
部署并监控:
# 启动部署
acli api:v3:environments:create-deployment <environmentId> true refs/heads/main
# 轮询完成状态(使用返回的 deploymentId)
acli api:v3:deployments:find <deploymentId>
CI/CD 流水线部署步骤:
#!/bin/bash
set -e
DEPLOYMENT=$(acli api:v3:environments:create-deployment \
"$ENV_ID" true "refs/heads/$BRANCH" --no-interaction)
DEPLOYMENT_ID=$(echo "$DEPLOYMENT" | python3 -c "import json,sys; print(json.load(sys.stdin)['id'])")
# 轮询直到完成
while true; do
STATUS=$(acli api:v3:deployments:find "$DEPLOYMENT_ID" | \
python3 -c "import json,sys; print(json.load(sys.stdin)['status'])")
echo "Deployment status: $STATUS"
case "$STATUS" in
completed) echo "Deployment succeeded"; exit 0 ;;
failed|stopped|terminated) echo "Deployment failed"; exit 1 ;;
esac
sleep 15
done
适用场景
- 需要监控 MEO 环境中代码部署的进度和状态。
- 部署耗时过长或发现问题时,需要安全中断部署。
- 部署卡住无响应时,需要立即终止。
- 在 CI/CD 流水线中自动执行部署并轮询状态。
- 调整环境中并行部署的站点实例数量。
限制
- 仅适用于 MEO 订阅,不适用于其他平台。
- 终止部署是破坏性操作,可能导致站点处于部分部署状态,执行前需确认。
- 启动部署需从环境资源发起,而非部署资源。
- 所有命令需通过 acli 工具执行。
相关主题
- MEO 概述 — ACE 与 MEO 对比、数据模型
- MEO 环境 — 启动部署、管理环境设置
- MEO 代码库 — 查找要部署的 git 引用
- MEO 站点实例 — 部署后验证站点实例状态