【发布时间】:2023-04-03 00:56:01
【问题描述】:
我正在尝试在 python 的 googleapiclient.discovery.Resource
模块中使用 bigtable 模拟器。
- Bigtable 模拟器在
127.0.0.1:8086
上运行
通过发现服务设置 Bigtable 客户端服务:
http = httplib2.Http(None, timeout=http_timeout)
client=discovery.build('bigtableadmin', 'v2', http=_http)
_client._baseUrl = 127.0.0.1:8086
以下 post 请求由发现发送:
http://127.0.0.1:8086/v2/projects/my_project/instances/my_instance/tables?alt=json
最终返回[Errno 54] Connection reset by peer.
我可以通过google.cloud.bigtable.Client
毫无问题地使用bigtable 模拟器。
我可以使用具有相同发现服务的本地 pubs 模拟器,rest api 似乎工作正常,但在 bigtable 模拟器上失败。
Bigtable Emulator 是否支持发布请求?或者模拟器只使用google.cloud.bigtable.Client
?我找不到有关模拟器文档的任何详细信息。
【问题讨论】:
-
您能否详细说明您使用资源类的方式?添加带有特定方法的代码 sn-p 用于示例执行将有助于缩小和跟踪复制。
-
感谢您的反馈,我添加了发现服务构建。同样的方法适用于 pubsub 模拟器,并且服务客户端可以将 rest api 调用发送到模拟器。但它不适用于大表。我开始认为bigtable emulator 不支持rest api 操作。
-
我发现了一些具有类似行为的条目,我会说问题取决于 Discovery 库管理连接的方式。我试过 curl ,我得到了完全相同的错误。 stackoverflow.com/questions/8658118/…stackoverflow.com/questions/50839322/…
-
我看到了。我的猜测是 bigtable 模拟器不支持 REST api 调用。 @sergiofranco
-
来自
google.cloud.bigtable.Client
的文档字符串:“注意::由于 Cloud Bigtable API 需要 gRPC 传输,因此此类不接受_http
参数。”
标签:
python
google-cloud-platform
bigtable
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用 Python 的 Bigtable 模拟器和 Google 发现资源 - Python技术站