用途:诊断并修复本地开发环境配置不完整的问题,适用于开发服务器无法启动、缺少环境变量、出现认证错误,或在运行开发命令前做检查的场景。
背景:AI Foundry 门户的“View sample app code”只提供 AI 资源变量(AI_AGENT_ENDPOINT、AI_AGENT_ID);而该应用还需要 Entra ID 应用注册用于用户认证,只有 azd up 会创建它。两套配置都需要。若来自门户,粘贴这些值再运行 azd up,会被自动识别并纳入。
主要能力与用法:运行校验脚本检查全部配置,命令为 pwsh -File deployment/scripts/validate-config.ps1,检查 frontend/.env.local 与 backend/WebApp.Api/.env 中的核心认证变量。azd up 会创建 Entra ID 应用注册(SPA 认证,MSAL.js,生成 frontend/.env.local)、后端认证配置(JWT 校验,生成 backend/WebApp.Api/.env)、Azure 基础设施(Container Apps、ACR、RBAC,生成 .azure/<env>/.env)及重定向 URI。
必需变量:前端 VITE_ENTRA_SPA_CLIENT_ID、VITE_ENTRA_TENANT_ID 必填,VITE_ENTRA_BACKEND_CLIENT_ID 仅 OBO 模式需要;后端 AzureAd__TenantId、AzureAd__ClientId、AzureAd__Audience、AI_AGENT_ENDPOINT、AI_AGENT_ID 必填。
常见错误与修复:登录 URL 出现 undefined 或 AADSTS900023,因 SPA 客户端与租户 ID 未设置,运行 azd up;前端显示“Setup Required”,运行 azd up 后重启开发服务器;/api/* 返回 401,检查后端 .env 中 AzureAd__ClientId 是否与 Entra 应用注册一致,可运行 azd provision 重新生成;本地开发出现 ManagedIdentityCredential 错误,设置 ASPNETCORE_ENVIRONMENT=Development,本地改用 ChainedTokenCredential(AzureCliCredential, AzureDeveloperCliCredential)。
修复步骤:先运行校验脚本;若无 .azure/ 目录则运行 azd up;若 .azure/ 存在但缺环境文件或变量有误,运行 azd provision 重新生成;任何修复后需重启开发服务器,因为环境变量在启动时读取。
限制:不要手动创建这些环境文件,它们含自动生成的 Entra 应用注册 ID。运行 dotnet watch run、npm run dev 或 start-local-dev.ps1 前,应先检查两个 env 文件是否存在,缺失则先运行 azd up。