gpt4 book ai didi

google-cloud-datastore - `gcloud.datastore` 在哪里保留其本地开发状态,我该如何清除它?

转载 作者:行者123 更新时间:2023-12-01 11:24:56 27 4
gpt4 key购买 nike

我正在试验 Google App Engine's flexible Python 3 environment and Cloud Datastore .在本地测试时,这(通常)要求在类似 Gunicorn 的东西中运行您的应用程序并从 gcloud.datastore 访问 Datastore API。例如:

import gcloud.datastore as g_datastore
ds = g_datastore.Client(...)
entity = datastore.Entity(key=ds.key(...))
ds.put(entity)

在本地运行时(在开发模式下),实体的状态在运行之间保持不变。我终其一生都无法弄清楚它们的存储位置或如何清除在创建/访问 gcloud.datastore.Client 后创建的开发数据存储。据我所知,当通过 dev_appserver.py 运行时,它使用的位置与 ndb 使用的位置不同。

我试过用这样的方法来解决这个问题(在运行 OS X 时):

$ touch foo
$ GCLOUD_PROJECT=... python .../main.py
* Running on http://127.0.0.1:8080/ (Press CTRL+C to quit)
* Restarting with stat
* Debugger is active!
* Debugger pin code: ...
127.0.0.1 - - [04/Jul/2016 10:36:01] "GET / HTTP/1.1" 200 -
...
^C
$ sudo find /private/tmp /var/db /var/tmp ~/.config/gcloud ~/Library -newer foo
...
# nothing meaningful

我试着查看源代码,发现 some unit test cleanup code那: a) 不是随 pip install gcloud 一起分发的;并且(对我来说更重要)b) 没有提供任何关于这些东西实际存储在哪里的线索。

我什至在 Gunicorn 运行时尝试过这个:

$ sudo lsof | grep -Ei 'python'
# nothing meaningful

当在本地运行时(在开发模式下),foo gcloud.datastore 在哪里存储它的状态?!

最佳答案

天哪,我觉得自己很傻! 😖 默认情况下,gcloud.datastore连接到...(等待它)... Google Cloud Datastore。真实的。我不知道为什么我期望有任何不同。

我没有马上弄明白,因为我的本地 gcloud配置已配置为使用我的帐户凭据,并且我有 GCLOUD_PROJECT运行本地实例时设置的环境。哎呀! 😳(难怪我在本地磁盘上没有看到任何变化!)

因此,如果您希望在本地运行“开发”云数据存储,则需要运行 Datastore emulator .这比运行 dev_appserver.py 更复杂(它几乎为您处理了所有这些;参见,例如,this workflow,了解如何从您的应用程序的数据存储调用中推断出您的 index.yaml 文件的值)。如果您不提供 --data-dir start 的选项命令,默认本地存储位置为~/.config/gcloud/emulators/datastore/... .

我没有删除问题,而是将其留在这里作为对像我这样的笨蛋的警告/解释。

关于google-cloud-datastore - `gcloud.datastore` 在哪里保留其本地开发状态,我该如何清除它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38189947/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com