You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

执行az cognitiveservices account list时scope值为空的问题排查与修复

问题排查:Azure CLI命令返回空scope值的原因及修复方法

可能的失败原因

  • 目标认知服务账户不存在或Endpoint不匹配:指定的Endpoint对应的Azure OpenAI账户尚未创建,或者Endpoint字符串存在拼写错误(比如字符漏写、域名后缀错误)。
  • 当前CLI订阅上下文错误:目标账户所在的Azure订阅未被设置为CLI当前默认订阅,导致az cognitiveservices account list无法查询到该账户。
  • 权限不足:当前登录Azure CLI的账号没有目标账户的读取权限,查询结果被过滤,无法返回目标账户信息。
  • JMESPath查询逻辑问题:contains匹配可能因Endpoint格式差异(比如末尾是否带斜杠)导致匹配失败,或查询语法存在隐性错误。

对应的修复方法

  • 验证账户与Endpoint正确性

    1. 执行az cognitiveservices account list -o table,查看所有认知服务账户的Endpoint列表,确认是否存在目标Endpoint。
    2. 若不存在,先创建对应的Azure OpenAI账户;若存在,复制实际的Endpoint字符串替换原命令中的值,保证完全一致(注意是否带末尾斜杠)。
  • 切换到正确的Azure订阅

    1. 执行az account list -o table,列出所有可用订阅,找到目标账户所在的订阅ID或名称。
    2. 执行az account set --subscription <订阅ID/名称>,切换到对应订阅后重新运行原命令。
  • 检查并补充权限

    1. 在Azure门户中找到目标认知服务账户,进入「IAM」页面,确认当前登录账号拥有「认知服务读取者」或更高权限(如参与者)。
    2. 若权限不足,添加对应的角色分配后重新执行命令。
  • 优化查询逻辑

    1. 改用精确匹配替代contains,避免部分匹配的不确定性:
      scope=$(az cognitiveservices account list --query "[?properties.endpoint == 'https://aiservices-2025learnresolution760978729403.openai.azure.com/'] | [0].id" -o tsv)
      
    2. 分步调试查询:先单独执行查询命令,查看返回结果,逐步缩小范围定位问题:
      # 先查看所有账户的ID和Endpoint
      az cognitiveservices account list --query "[].{id:id, endpoint:properties.endpoint}" -o table
      # 再用更短的关键词测试contains匹配
      az cognitiveservices account list --query "[?contains(properties.endpoint, 'aiservices-2025learnresolution')] | [0].id" -o tsv
      

内容的提问来源于stack exchange,提问作者Manu Chadha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 11:01:05