开发服务器旨在模拟整个 App Engine 环境,如果您检查命令的输出,您dev_appserver.py
会看到类似Starting Cloud Datastore emulator at: http://localhost:PORT
. 您的代码将自动与捆绑的 Datastore 交互,根据您编写的代码推送和检索数据。您的数据将保存在本地存储中的文件中,并且将在开发服务器的不同运行中持续存在,除非它被明确删除。
此选项不提供从现有 Cloud Datastore 实例导入数据的工具,但如果您的测试程序能够通过使用以编程方式执行此操作的自定义创建脚本来使用模拟数据填充本地数据库,它是一个现成的解决方案。如果您决定采用这种方法,只需编写数据创建脚本并在运行测试之前执行它。
现在,还有另一个选项可以使用 Cloud SDK 来模拟本地 Datastore,该 SDK 提供了方便的功能。您可以在运行数据存储模拟器文档页面下找到它的可用信息。此模拟器支持导入从生产 Cloud Datastore 下载的实体以及将它们导出到文件中。
回到你的问题:
- 在此之后将 Cloud 实例中的数据导出到 GCS 存储桶中,然后在此之后将数据从存储桶下载到您的文件系统,最后使用此处显示的命令将数据导入模拟器。
- 要使用模拟器,您需要先
gcloud beta emulators datastore start
在 Cloud Shell 中运行,然后在单独的选项卡中运行dev_appserver.py --support_datastore_emulator=true --datastore_emulator_port=8081 app.yaml
。
- 开发服务器使用上述两个模拟器之一,在这两种情况下它都没有连接到您的 Cloud Datastore。您可以使用数据库副本创建另一个用于开发目的的项目,并在那里部署您的应用程序,这样您就根本不使用模拟器。
- 数据存储区的请求是通过端点
https://datastore.googleapis.com/v1/projects/project-id
发出的,尽管这与模拟器如何管理本地服务器中的连接无关。
希望这可以帮助。