SuperAPI AI 工具集

validating-deployments

部署与运维

查看项目

更新于 10-16 00:30

技能介绍

用途:在任何改动后端、前端、基础设施或认证代码的会话结束时运行,对 MI(默认)与 OBO 两条部署路径做端到端验证。

前置条件:单元测试通过(dotnet test 与 npm test);前端可构建(npm run build);Bicep 校验通过(az bicep build --file infra/main.bicep);已安装 Playwright(npx playwright install chromium)。

安全检查(每次部署前):后端执行 cd backend && dotnet list package --vulnerable;前端执行 cd frontend && npm audit;若装了 hadolint,执行 hadolint deployment/docker/frontend.Dockerfile。Dockerfile 以非 root 运行(USER app),需确认改动后未被移除。

MI 路径:先 azd env new mi-test --no-prompt,按需 azd env set ENTRA_SERVICE_MANAGEMENT_REFERENCE "<guid-from-admin>",再 azd env set AZURE_LOCATION eastus2 --no-prompt 与 azd up --no-prompt;取 WEB_ENDPOINT 后运行 node deployment/scripts/smoke-test.js 做远程冒烟,核验健康状态 200、显示 agent 名称、聊天流式输出与 token 用量。本地开发测试需设 ASPNETCORE_ENVIRONMENT=Development(否则使用 ManagedIdentityCredential 在本地失败)与 ASPNETCORE_URLS=http://localhost:8080,再分别启动 dotnet watch run 与 npm run dev,然后对 http://localhost:5173 跑冒烟测试。拆除用 azd down --force --purge --environment mi-test --no-prompt,并确认相关 .env 文件与 .azure/mi-test/ 被删除、Entra 应用已删除。

OBO 路径:azd env new obo-test --no-prompt,azd env set ENABLE_OBO true --no-prompt,设置区域后 azd up --no-prompt;用 az containerapp logs show 查看日志确认 OBO 模式启用与凭据创建;冒烟测试需交互式 MSAL 登录。拆除同 MI,并额外确认后端 API 应用注册与 FIC 已删除。

限制与已知问题:本地开发必须设 Development 环境;部分组织需要 SMR;Bicep 创建 FIC 可能因 Graph API 最终一致性失败,需改用 az ad app federated-credential create;v2 agent API 需 kind: "prompt";OBO 作用域是 api://{BACKEND}/Chat.ReadWrite,写成 SPA 会导致 AADSTS500131;AI 作用域解析到 Azure ML Services;MI 模式下会话历史非用户隔离。