关于 launch-trigger-and-monitor-launch-deployments
面向运维人员和 CI/CD 工作流的技能,可启动 Contentstack Launch 部署、跟踪至终态,并在失败时分析日志。每次部署均须明确确认,生产环境还需额外验证。
主要功能
- 01通过 Launch API 触发部署
- 02每 10 秒轮询状态
- 03失败时获取并总结日志
- 04失败或取消时以非零状态退出
- 05要求确认并验证部署目标
适用场景
- 01跟踪 staging 部署直至完成
- 02定位部署失败的可能原因
- 03将经确认的部署检查加入 CI/CD 工作流
MCP 相关
该技能使用 Launch API 触发部署并检查状态,还会获取部署详情以分析失败原因。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ contentstack/ contentstack-agent-skills --skill launch-trigger-and-monitor-launch-deployments安装后在 Claude Code 中输入/launch-trigger-and-monitor-launch-deployments确认已加载。
详细介绍
触发并监控 Launch 部署
描述
为指定环境触发 Launch 部署,然后轮询其状态,直到完成。如果部署失败或被取消,则获取部署日志并诊断可能原因,同时提供后续建议。
适用场景
当你需要为已知项目和环境自动执行 Launch 部署、监控进度并提供失败诊断时使用。适用于需要确定性部署状态检查和基于日志排查问题的 CI/CD 或运维工作流。
用户问题
用户需要一种可靠的方式来启动 Launch 部署、跟踪其进度直至完成,并在部署失败时快速了解原因。此技能应减少手动轮询,并帮助用户采取行动处理部署故障。
成功标准
针对预期项目和环境触发部署。 以固定间隔轮询状态,直至达到终态。 部署失败或被取消时,进程以非零代码退出。 部署失败时,获取部署日志,并总结可能原因和后续步骤。 每次部署触发前都必须明确确认项目和环境;对于生产目标,还需额外验证。
预期输入
- project_uid
- environment_uid
- 可选的部署负载或构建引用
- 每次部署前的明确确认(无论是否为生产环境)
- 关于应用、分支或构建来源的任何可用背景信息
预期输出
- 部署 UID 和初始触发响应
- 轮询过程中的当前状态更新
- 终态和退出代码
- 发生故障时的部署日志摘要
- 建议的后续步骤和可能的根本原因
用户请求示例
- 为项目 abc123 在环境 prod456 中触发部署,并监控直至完成。
- 将最新构建部署到暂存环境,并在失败时告知我。
- 如果部署失败,请检查日志并说明问题所在。
- 每隔 10 秒轮询一次 Launch 部署,并在失败时以非零代码退出。
工作流摘要
验证项目和环境标识符。 确认目标获准后,在触发此次部署前取得明确批准,无论目标环境为何。 使用 Launch API 触发部署。 每隔 10 秒轮询部署状态,直至达到终态。 如果状态为 failed 或 cancelled,则获取并分析部署日志。 返回简明摘要,包含状态、日志发现和建议的后续步骤。
说明
触发部署
使用所需负载调用 POST /projects/{project_uid}/environments/{environment_uid}/deployments。发送请求前验证目标环境。
轮询状态
每隔 10 秒检查一次部署状态。持续轮询,直至部署达到终态或检测到失败情况。
快速失败
如果状态变为 failed 或 cancelled,则以非零代码退出。达到终态失败状态后,不要继续轮询。
失败时获取日志
如果部署失败,则调用 GET /projects/{project_uid}/environments/{environment_uid}/deployments/{deployment_uid} 并检查部署日志详情。
诊断并提出建议
根据日志总结最可能的原因,指出缺少的前置条件或配置问题,并建议下一项纠正操作。
输出格式
首先返回简明的部署摘要。 包含部署 UID、环境 UID 和最终状态。 失败时,提供简短的日志诊断和后续步骤。 不要泄露部署令牌、密钥或环境变量。 部署失败或被取消时,使用非零退出代码。
工具说明
使用 Launch API 触发部署并检查状态。 使用部署详情/日志端点分析失败原因。 部署前验证目标环境。 每次部署前都必须获得明确确认;生产环境还需要额外检查。 未经审核,绝不自动部署到生产环境。
安全
默认规则
- 绝不泄露部署令牌或环境机密。
- 触发部署前验证部署目标。
- 每次部署前都必须获得明确确认。
- 未经审核,绝不自动部署到生产环境。
破坏性操作
将部署触发视为外部副作用。触发任何部署前,都必须获得用户的明确确认。监控或诊断现有部署的请求绝不会触发新部署。除非用户提出要求且目标为非生产环境,否则不要自动重试失败的部署。
机密
绝不打印、记录或回显 API 令牌、部署令牌或环境机密。从错误、日志和摘要中删除敏感值。
环境变量
必要时通过环境变量接受配置,但绝不泄露其值。尝试部署前,验证所需变量是否存在。
产品背景
-
- 产品:Launch
-
- 描述:Contentstack Launch:为基于 Contentstack 的前端提供托管、部署、边缘交付、无服务器函数、环境管理和 CI/CD。
-
- 产品安全规则:- 绝不泄露部署令牌或环境机密。
- 触发部署前验证部署目标。
- 每次部署前都必须获得明确确认。
- 未经审核,绝不自动部署到生产环境。
-
- 默认工具:["Launch API", "Projects", "Environments", "Deployments", "Serverless Functions", "Edge Delivery", "Custom Domains"]
-
- 默认连接器:["Launch Proxy", "GitHub", "CI/CD Pipelines"]
示例
触发并监控部署(少样本示例 *)
用户: 将项目 abc123 部署到环境 staging456,并持续轮询,直到部署完成。
助手: 1. 验证项目和环境。 2. 通过 POST /projects/abc123/environments/staging456/deployments 触发部署。 3. 每 10 秒轮询一次状态。 4. 如果部署状态变为 failed 或 cancelled,获取部署日志并总结原因。 5. 返回最终状态;如果失败,则以非零状态码退出。
展示触发 → 轮询 → 快速失败 → 诊断的行为。
需要确认生产部署(边缘情况示例 *)
用户: 现在部署到生产环境。
助手: 我可以执行,但生产环境部署需要明确确认。请确认确切的项目和环境 UID,然后我再继续。
展示生产环境安全关卡。