用途
diagnose-deployment 是用于排查 Power Pages 部署错误的技能。它负责呈现 PAC CLI 上传错误与 Dataverse 异步操作错误,将错误与已知故障目录进行模式匹配,并在发现问题时提供可选的自动修复建议。
主要能力
- 捕获
pac pages upload-code-site命令的输出(stdout+stderr),交由scripts/parse-deployment-errors.js解析错误。 - 在存在
.solution-manifest.json时,查询 Dataverse 近期的异步操作与导入作业,识别失败记录。 - 将错误归类为 Error(阻止部署)、Warning(可能引发问题)、Info(提示信息),并补充缺失产物类发现,如缺少 websiteRecordId、构建输出为空、存在多个环境清单等。
- 对存在自动修复方案的问题提供修复建议,但每项修复都需要用户单独明确确认。
- 输出最终发现摘要表,标注每项问题的处理状态(已修复、需手动处理、已跳过、仅提示)。
使用方式
该技能按阶段执行:
- 验证前置条件并定位项目(查找 powerpages.config.json、检查 PAC CLI 与 Azure CLI 及认证状态)。
- 参考当前 ALM 文档进行判断(限时约 30 秒,若检索失败会记录一行说明并继续,技能保持离线可运行)。
- 收集部署产物(读取配置、检查 .powerpages-site/、清单文件、构建输出等)。
- 以捕获模式重新运行上传命令以获取最新错误。
- 查询解决方案导入状态(仅在存在解决方案清单时)。
- 诊断并分类所有发现。
- 对可自动修复的错误逐项征求用户许可后执行修复,并在修复后重新运行相关检查验证结果。
- 展示最终发现摘要,若错误均已解决则建议重试部署,若仍需手动处理则列出具体步骤或命令。
自动修复覆盖的场景包括:过期的清单文件(删除 .powerpages-site/ 下的 *-manifest.yml)、JavaScript 上传被阻止(更新 blockedattachments 设置)、缺少 websiteRecordId(获取并更新记录 ID)、认证过期(引导重新认证)、构建输出为空(运行构建)。
适用场景
适用于 Power Pages 站点部署失败、上传报错、解决方案导入异常等需要诊断与分类部署问题的场景。使用前提是项目根目录包含 powerpages.config.json,且已安装 PAC CLI。
限制与约束
- 任何自动修复都必须获得用户明确许可,单个修复不会覆盖其他修复的授权。
- Azure CLI 令牌不可用时将跳过解决方案导入状态查询,并在摘要中说明。
- 若解析脚本未返回任何发现,会提示未检测到已知错误模式并展示原始输出供人工检查。
- 若上传命令无输出,会报告当前状态下未检测到上传错误。
- 具体价格、收费、支持平台与效果等信息暂未提供。