Azure 部署验证
在部署 Azure 应用前,系统检查配置、基础设施、权限与构建状态。
证据显示要求先经 azure-prepare、对破坏性/安全/成本影响操作使用 ask_user,并确认订阅和区域;但验证流程仍允许执行 azd、az、Docker、npm 和修改部署计划/源文件,未明确最小权限、敏感数据处理、数据流披露、回滚机制或命令结果的安全隔离,因此扣分。
主流程和 AZD/AZCLI 配方基本一致,包含前置条件、失败停止规则及部分错误处理;但多个引用文件未在所给材料中提供,Bicep/Terraform/RBAC 等关键路径缺少可复现测试和统一异常反馈,且静态审查不能证明命令可运行,因此限制在静态上限内并扣分。
触发词、适用的 AZD/AZCLI/Bicep/Terraform 场景及 Aspire 条件较清楚,也列出了部分不适用情形;但输入输出契约、非适用边界、语义防误触发规则和环境要求仍不完整,未提供中文交互或中国大陆网络可达性说明,因此扣分。
技能有明确名称、描述、MIT 许可、作者和 1.1.2 版本,并采用主文档加配方/错误参考的分层结构;但缺少变更日志、明确维护责任和更新路径,且所给材料无法确认若干引用文件存在或内容完整,因此扣分。
验证步骤覆盖计划读取、IaC 编译/校验、预览、构建、策略、RBAC 复核和证明记录,核心目标具有直接可操作性;但结果依赖外部 Azure 身份、订阅和工具,未提供该技能的代表性执行证据,且成功后强制调用部署会扩大任务范围,故未给静态上限之外的分数并扣分。
文档要求记录 Section 7 的命令及结果,仓库还展示了通用 CI 和测试基础设施;但所给证据没有针对 azure-validate 关键路径的专门测试、真实运行结果或多源复核,因此只能给有限静态可验证性分数。
- 执行验证会调用 Azure CLI/MCP、读取订阅和资源信息,并可能修改部署计划、源文件、环境变量或生成 package-lock.json;应在每个具体变更前确认范围、权限和备份/回滚方案。
- 主技能在全部验证通过后强制调用 azure-deploy;若用户只要求检查,不应默认扩大为部署。
- 所给材料未包含若干被引用的配方、错误和 RBAC 文件,引用完整性及关键命令的实际兼容性仍需另行核验。
它能做什么 & 适用场景
Azure Validate 是 microsoft/skills 仓库中 azure-skills 插件的一项部署前验证技能。它要求先完成 azure-prepare,并读取已获批准的 .azure/deployment-plan.md。技能会根据部署方案执行配置、Bicep 或 Terraform、构建及 RBAC 等检查,并记录验证证据。只有全部检查通过后,状态才会更新为 Validated,并交由 azure-deploy 执行部署。
读取 .azure/deployment-plan.md;将部署方案中的验证步骤加入计划;执行方案指定的验证命令,例如 azd provision --preview、Bicep build 或 terraform validate;构建项目并要求修复构建错误;检查 Bicep/Terraform 中的 RBAC 角色分配;在计划的第 7 节记录执行过的命令及结果;修复失败项后重新验证;所有检查通过后将状态设为 Validated,并调用 azure-deploy。
- 负责 Azure 基础设施的工程师在部署前检查配置和资源定义是否准备就绪。
- 使用 Bicep 或 Terraform 的团队在执行部署前验证基础设施代码。
- 配置了 RBAC 或托管身份的应用团队在上线前核对角色分配和权限。
- 维护 Azure Functions 或 Container Apps 的开发者在排查部署错误前运行预检。
优缺点一览
- 覆盖配置、基础设施、构建、RBAC 和托管身份权限等部署前环节。
- 要求记录具体命令及结果,便于追溯验证依据。
- 明确规定失败时不得继续部署,并提供 prepare、validate、deploy 的工作流。
- 必须先有 azure-prepare 生成并批准部署计划。
- 技能本身不执行部署,而是依赖 azure-deploy 完成后续操作。
- 源材料未说明各客户端的详细安装目录、认证配置或完整测试覆盖范围。
如何安装
仓库集合可使用 npx skills add microsoft/skills 安装,并在向导中选择所需技能;也可以克隆仓库后复制对应技能目录。源材料没有提供该技能单独安装到特定客户端目录的完整命令。
如何使用
先调用并完成 azure-prepare,确保 .azure/deployment-plan.md 存在且状态为 Approved 或更高。然后提出类似“检查我的 Azure 应用是否准备好部署”或“验证 Bicep 并运行部署前检查”的请求。不要直接运行部署命令;验证通过后由 azure-deploy 继续执行。