Appengine 使用数据存储设置本地主机以进行测试

appengine set up local host with datastore for testing

我已尝试按照 google 的文档了解如何使用数据库设置本地开发 (https://cloud.google.com/appengine/docs/standard/python/tools/using-local-server#Python_Using_the_Datastore)。但是,我没有跟进的经验水平。我什至不确定那是否是正确的指南。该应用程序是一个使用 python 2.7 的 Django 项目。对于 运行 本地主机,我通常输入 dev_appserver.py --host 127.0.0.1 .

我的问题是:

  1. 如何在 google 云上下载数据存储数据库。我不想下载整个数据库,只需要足够的数据来填充本地主机,这样我就可以进行测试

  2. 下载数据库后,我需要做什么才能将其连接到本地主机?我必须在某处更改参数吗?

  3. 我需要下载数据存储吗?我可以只在云上制作一个副本,然后连接到该数据存储吗?

  4. 当我 运行 localhost 时,它不应该已经连接到数据存储吗?由于该网站在云端 运行ning 时可以正常工作。我在哪里可以找到连接 URI?

感谢帮助

development server 旨在模拟整个 App Engine 环境,如果您检查 dev_appserver.py 命令的输出,您会看到类似 Starting Cloud Datastore emulator at: http://localhost:PORT 的内容。您的代码将自动与捆绑的数据存储交互,根据您编写的代码推送和检索数据。您的数据将保存在本地存储中的一个文件中,并将在开发服务器的不同 运行 中持续存在,除非它被明确删除。

此选项不提供从现有 Cloud Datastore 实例导入数据的工具,但如果您的测试程序可以通过使用自定义创建的脚本来使用模拟数据填充本地数据库,那么它是一个随时可用的解决方案以编程方式这样做。如果您决定采用这种方法,只需编写数据创建脚本并在 运行 测试之前执行它。

现在,还有另一个选项可以使用 Cloud SDK 模拟本地 Datastore,它附带方便的功能供您使用。您可以在 Running the Datastore Emulator 文档页面下找到它的可用信息。此模拟器支持导入从您的生产云数据存储区下载的实体以及将它们导出到文件中。

回到你的问题:

  1. 将云实例中的数据导出到 this, then download the data from the bucket to your filesystem following this, finally import the data into the emulator with the command shown here 之后的 GCS 存储桶中。
  2. 要使用模拟器,您需要先在 Cloud 运行 gcloud beta emulators datastore start 中 Shell,然后在单独的选项卡中 运行 dev_appserver.py --support_datastore_emulator=true --datastore_emulator_port=8081 app.yaml
  3. 开发服务器使用上述两个模拟器之一,在这两种情况下它都没有连接到您的云数据存储。您可以使用数据库的副本创建另一个旨在用于开发目的的项目,并在那里部署您的应用程序,这样您就根本不用模拟器了。
  4. 数据存储区的请求是通过 endpoint https://datastore.googleapis.com/v1/projects/project-id 发出的,尽管这与模拟器如何管理本地服务器中的连接无关。

希望对您有所帮助。