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

Azure WebApp中ChromaDB Python客户端连接失败问题求助

问题排查与解决方法

1. 核心参数名错误

你的代码里使用了chroma_client_auth_credentials和chroma_client_auth_provider,但报错提示找不到chroma_server_authn_credentials——这是参数名不匹配导致的。ChromaDB HTTP客户端的认证参数需要使用服务端侧的配置键名,正确的参数应该是:

  • chroma_server_authn_provider(替代你用的chroma_client_auth_provider)
  • chroma_server_authn_credentials(替代你用的chroma_client_auth_credentials)

修正后的连接代码:

import os
import chromadb
from chromadb.config import Settings

# 从Azure环境变量读取配置参数
CHROMA_SERVER_AUTHN_PROVIDER = os.getenv("CHROMA_SERVER_AUTHN_PROVIDER")
bearer_token = os.getenv("CHROMA_SERVER_AUTHN_CREDENTIALS")
url = os.getenv("CHROMA_SERVER_HOST")  # 即你的https://....azurewebsites.net

client = chromadb.HttpClient(
    host=url,
    ssl=True,  # HTTPS地址必须启用SSL
    settings=Settings(
        chroma_server_authn_provider=CHROMA_SERVER_AUTHN_PROVIDER,
        chroma_server_authn_credentials=bearer_token
    )
)

2. 验证Azure环境变量有效性

  • 确认Azure WebApp环境变量中,CHROMA_SERVER_AUTHN_CREDENTIALS确实设置了无空格、无换行的有效Bearer Token
  • 建议在代码中添加打印语句,验证参数是否正确读取:
    print("读取到的Token:", os.getenv("CHROMA_SERVER_AUTHN_CREDENTIALS"))
    print("认证提供者:", os.getenv("CHROMA_SERVER_AUTHN_PROVIDER"))
    

3. 替代连接方式:直接传递请求头

如果参数配置仍有问题,可以跳过ChromaDB内部认证逻辑,直接在HttpClient中自定义请求头:

import os
import chromadb

url = "https://....azurewebsites.net"
bearer_token = os.getenv("CHROMA_SERVER_AUTHN_CREDENTIALS")

client = chromadb.HttpClient(
    host=url,
    ssl=True,
    headers={"Authorization": f"Bearer {bearer_token}"}
)

额外注意事项

  • 因为你的连接地址是HTTPS,必须显式设置ssl=True,否则会出现连接失败
  • 确保Azure WebApp上的ChromaDB服务端已正确配置认证,比如CHROMA_SERVER_AUTHN_PROVIDER设置为bearer

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 17:55:08