使用Python更新Data Catalog表关联标签时元数据解析报错
问题场景
使用Python更新Google Cloud Data Catalog中已关联到表的标签时,触发以下报错:
E0102 16:29:36.671000000 13508 src/core/ext/transport/chttp2/transport/hpack_parser.cc:1228] Error parsing metadata: error=invalid value key=content-type value=text/html; charset=UTF-8
但创建标签模板、给表关联标签的操作均能正常执行。
排查与解决办法
升级Data Catalog Python客户端:旧版本客户端可能存在HTTP/2协议兼容性问题,执行命令升级:
pip install --upgrade google-cloud-datacatalog确认API调用端点正确性:避免代码中手动构造HTTP请求时写错端点,优先使用官方SDK提供的更新方法,确保请求指向正确的Data Catalog服务端点而非返回HTML内容的错误页面。
检查网络代理/防火墙配置:如果环境存在代理或防火墙,可能篡改了响应头,将原本的
application/json替换为text/html。调整网络配置,确保请求直接抵达Data Catalog服务,或允许代理传递正确的响应头。显式指定API版本与端点:初始化客户端时明确指定服务端点,避免协议协商异常:
from google.cloud import datacatalog_v1 client = datacatalog_v1.DataCatalogClient(client_options={"api_endpoint": "datacatalog.googleapis.com"})排查权限与原始响应:临时添加日志打印原始响应内容,确认是否是服务端返回了HTML格式的权限错误页面。若为权限问题,需确保操作账号拥有
datacatalog.tags.update权限。
内容的提问来源于stack exchange,提问作者Mohamed BOUZIANE

