【发布时间】:2017-10-18 11:15:09
【问题描述】:
我正在尝试在本地测试 google 的云数据存储。我的测试步骤是:
- 使用 Scrapy 抓取数据
- 使用本地模拟器将数据保存到云数据存储中
为了使用本地模拟器,我按照所有步骤操作
- 启动本地模拟器:
gcloud beta emulators datastore start - 设置本地环境变量:
gcloud beta emulators datastore env-init
然而,在python中,当使用以下命令访问云数据存储时,它总是将数据直接保存到谷歌云而不是保存到本地模拟器
#Imports the Google Cloud client library
from google.cloud import datastore
# Instantiates a client
datastore_client = datastore.Client()
sample_entry = some_data
# Saves the entity
datastore_client.put(sample_entry)
您似乎无法指定库以使用本地数据存储模拟器,就像他们在 Node.js 客户端中提供的那样
var datastore = gcloud.datastore({
apiEndpoint: "http://localhost:8380"
});
我的问题是,如何让谷歌云数据存储python库使用本地模拟器而不是直接使用云
【问题讨论】:
-
调用
env-init后,DATASTORE_EMULATOR_HOST环境变量的值是多少? -
虽然我一直是本地测试和开发服务的一员,但 Google Cloud 环境非常复杂,我绝对不建议使用他们的平台仿真包。像这样的 Bug,以及与实际部署环境的行为不一致,让人头疼,不值得拥有;除非有你不能这样做的原因,否则我建议只在云环境中使用暂存项目。
-
可能,您可能需要按照此处给出的步骤仔细检查您的模拟器设置:cloud.google.com/datastore/docs/tools/datastore-emulator
标签: python google-app-engine google-cloud-datastore datastore