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

Azure KeyVault调用Python get_secret()报TypeError: string indices must be integers

问题解决方案

TypeError: string indices must be integers报错本质是Azure Key Vault Python SDK处理异常响应时的格式不匹配:当Key Vault请求失败时,服务端返回了纯字符串格式的错误内容,而非SDK预期的JSON结构,导致SDK尝试提取body["error"]字段时触发类型错误。

你需要按以下步骤逐一修正代码和配置问题:

  • 修正租户ID与客户端ID的赋值错误
    现有代码中两个参数的取值完全填反,修改为对应正确值即可:
    # 原错误配置
    TENANT_ID = 'client_id'
    CLIENT_ID = 'tenant_id'
    # 修正为对应实际值
    TENANT_ID = '你的Azure租户ID'
    CLIENT_ID = '你的服务主体客户端ID'
    
  • 修正Key Vault访问URL
    标准Key Vault访问URL格式为https://<你的KeyVault名称>.vault.azure.net/,请替换代码中占位符https://vault_url为实际访问地址。
  • 修正get_secret方法的入参
    从报错日志可以看到,实际运行的代码中调用get_secret时传入了KEYVAULT_NAME,而非预期的密钥名称SECRET_NAME,修改为:
    print(_sc.get_secret(SECRET_NAME).value)
    
  • 检查Key Vault访问权限
    确认你使用的服务主体已经在Key Vault的访问策略中被授予了**获取密钥(Get Secret)**权限,权限不足也会触发请求错误导致该异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 18:15:04