用途:对 Azure SQL Server 实例运行或刷新迁移评估,取得就绪度(Suitability)与目标 SKU 推荐及可用成本字段。可由用户直接调用,或从 run-migration-assessment 调用。
主要能力与流程:
- 解析资源:通过 ARM 资源识别收集订阅、资源组和实例名;调用 ARM 前需先从 references/command-execution.md 初始化 API 版本与实例终结点。
- 检查已有评估:一般请求先查已有评估,调用 get-migration-assessment;已有数据则先渲染再询问,仅在用户明确确认后才触发全新评估。仅在用户明确要求刷新、重跑、替换或生成新评估,或明确要求忽略既有结果时才跳过检查。已启用但无数据则进入下一步;明确禁用则提供 ARM 启用、门户启用或本地评估(若宿主工具支持)。
- 触发与监控:记录触发请求时间,按 references/command-execution.md 运行评估触发,并在同一命令中以可配置次数与间隔轮询 MigrationJobOnDemand。2xx 或 409 继续;其他 4xx/5xx 报错停止;InProgress 继续轮询;Succeeded 且 lastExecutionTime 晚于触发时间进入下一步;Succeeded 但时间较旧继续轮询;Failed 展示 jobException 并停止;超时则给出门户链接并停止。
- 检索遥测:运行 getTelemetry,捕获 Azure-AsyncOperation URL 并轮询;将完整响应保存到临时文件。成功则解码,失败或取消则报错,超时给出门户链接并停止。
- 确认新结果:解码门户四类遥测报告:Suitability / Suitability_V2;SKURecommendation_AzureSQLVM / _V2;SKURecommendation_AzureSQLMI / _V2;SKURecommendation_AzureSQLDB / _V2。每类选择 ObservedTimestampUTC 较新的报告;Suitability 用于就绪度与阻碍项,三个 SKU 报告用于规模与推荐细节。将选中的 Suitability EndedOn 与触发时间转为 UTC 比较,并要求每个可用 SKU 报告的 ObservedTimestampUTC 晚于触发时间;若有陈旧报告,最多重复三次遥测检索与解码。作业仅用于运行、新成功与失败状态。
- 渲染:使用已选新遥测中的推荐目标与可用成本,按评估输出渲染就绪度与 SKU 推荐组合,并包含门户报告链接。
验证与清理:复用已有数据时确认未触发刷新即完成检索与渲染;请求新评估时要求作业成功、报告检索完成且报告时间戳晚于触发时间。清理 ARM 令牌与签名操作 URL,并仅在报告已另存后删除临时运行目录。
限制:调用 ARM 时须遵循 references/command-execution.md 的传输规则,PowerShell 段落按顺序执行,每个代码块作为一条终端命令运行。价格、具体平台支持范围、其他前置条件等细节资料未提供。