Azure ML FAISS向量索引部署验证失败:无令牌接收错误排查
问题核心
在Azure ML网页UI创建FAISS向量索引,首次执行validate_deployments_job步骤时触发azure.core.exceptions.ClientAuthenticationError: No token received错误;重新运行作业后验证步骤仍失败,但向量索引可正常使用。已确认登录状态及组件权限,创建作业时无令牌输入入口。
错误根源分析
从日志来看,错误发生在Azure OpenAI(AOAI)资源的控制平面验证阶段:系统尝试使用_AzureMLOnBehalfOfCredential获取令牌失败, fallback到用户身份认证仍未成功。这通常是计算实例的认证上下文失效、Workspace Connection配置错误或权限范围不足导致的。
排查及解决步骤
重启计算实例,重置认证上下文
计算实例长时间运行可能导致令牌缓存过期,重启后会重新获取有效身份凭证。直接在Azure ML UI中找到当前使用的计算实例,点击重启即可。确认计算实例托管标识权限
检查计算实例的系统分配托管标识是否启用,且拥有AOAI资源的必要权限:- 进入计算实例详情页 → 「身份」→ 「系统分配」,确保状态为“启用”
- 前往AOAI资源的IAM页面,添加该托管标识为
Cognitive Services Contributor或Cognitive Services Deployment Reader角色成员
校验Azure OpenAI Workspace Connection配置
进入Azure ML工作区 → 「管理」→ 「连接」,找到Default_AzureOpenAI连接:- 确认连接类型为
Azure OpenAI,资源ID、API密钥、嵌入模型部署名称(text-embedding-ada-002)配置无误 - 点击「测试连接」,确认能正常连通AOAI资源
- 若配置出错,重新创建连接并在向量索引创建时选择该连接
- 确认连接类型为
检查用户/服务主体权限范围
确保当前登录用户(或使用的服务主体)拥有:- Azure ML工作区的
Contributor权限 - AOAI资源的
Cognitive Services Contributor权限
避免因权限不足导致令牌获取失败
- Azure ML工作区的
临时跳过验证步骤(workaround)
若验证步骤不影响索引实际使用,可修改作业配置跳过该检查:
在创建向量索引的作业设置中,找到validate_deployments相关参数,设置为false(路径:作业配置 → 高级设置 → 自定义参数)。注意此为临时方案,需确保AOAI资源本身配置正常。
关于重新运行索引仍能创建的原因
验证步骤属于前置检查环节,仅用于确认AOAI部署状态;而向量索引创建的核心逻辑通过Workspace Connection的API密钥绕过了身份令牌验证,因此即使验证失败,索引仍能完成创建。但长期来看需修复认证问题,避免后续其他依赖AOAI的作业出错。
内容的提问来源于stack exchange,提问作者lte__

