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

Weaviate v4 Python客户端无法连接Azure容器化实例求助

问题分析与解决方案

你的v4客户端连接失败的核心原因是gRPC配置错误,以及Azure Web App部署场景下的端口映射问题:

1. 错误点排查

  • v3客户端默认仅使用HTTP连接,而v4客户端默认同时尝试HTTP和gRPC连接
  • 你将grpc_host设为localhost,但Weaviate部署在Azure Web App上,并非本地环境
  • Azure Web App默认对外暴露的是80/443端口,而非容器内部的8080端口

2. 修正方案

方案一:禁用gRPC,仅使用HTTP连接

如果不需要gRPC功能,直接初始化HTTP-only客户端即可:

import os
from weaviate import connect_to_http
from weaviate.auth import AuthApiKey

client = connect_to_http(
    host=os.getenv("WEAVIATE_AZURE_URL"),
    port=80,  # Azure Web App对外默认端口
    secure=False,
    auth_credentials=AuthApiKey(os.getenv("WEAVIATE_AZURE_KEY"))
)

# 验证连接
try:
    client.is_ready()
    print("连接成功")
finally:
    client.close()

方案二:修正gRPC配置(如需使用gRPC)

如果需要gRPC功能,需同步修正gRPC主机地址,并确保Azure Web App已正确暴露gRPC端口:

import os
from weaviate import connect_to_custom
from weaviate.auth import AuthApiKey

client = connect_to_custom(
    http_host=os.getenv("WEAVIATE_AZURE_URL"),
    http_port=80,
    http_secure=False,
    grpc_host=os.getenv("WEAVIATE_AZURE_URL"),
    grpc_port=50051,  # 需确保Azure Web App已映射此端口
    grpc_secure=False,
    auth_credentials=AuthApiKey(os.getenv("WEAVIATE_AZURE_KEY"))
)

# 验证连接
try:
    client.is_ready()
    print("连接成功")
finally:
    client.close()

3. Azure Web App额外配置

  • 若使用gRPC,需在Azure Web App的配置 > 常规设置中开启HTTP/2支持
  • 检查容器端口映射:确保Web App已将容器的8080端口映射到外部80端口,50051端口映射到外部对应端口(可在容器设置中配置)
  • 确认Azure防火墙规则允许对应端口的入站流量

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 17:43:30