【问题标题】:appengine set up local host with datastore for testingappengine 使用数据存储设置本地主机进行测试
【发布时间】:2020-01-12 14:50:13
【问题描述】:

我已尝试按照 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. 如何在谷歌云上下载数据存储数据库。我不想下载整个数据库,只需要足够的数据来填充本地主机,这样我就可以进行测试了

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

  3. 我需要下载数据存储吗?我可以在云端复制一份然后连接到那个数据存储吗?

  4. 当我运行 localhost 时,它应该还没有连接到数据存储区吗?由于该站点在云上运行时可以工作。我在哪里可以找到连接 URI?

感谢您的帮助

【问题讨论】:

    标签: python google-app-engine google-cloud-datastore google-app-engine-python local-datastore


    【解决方案1】:

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

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

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

    回到你的问题:

    1. 按照this将Cloud实例中的数据导出到GCS存储桶,然后按照this将数据从存储桶下载到您的文件系统,最后使用here显示的命令将数据导入模拟器。李>
    2. 要使用模拟器,您需要先在 Cloud Shell 中运行 gcloud beta emulators datastore start,然后在单独的选项卡中运行 dev_appserver.py --support_datastore_emulator=true --datastore_emulator_port=8081 app.yaml
    3. 开发服务器使用上述两个模拟器之一,在这两种情况下它都没有连接到您的 Cloud Datastore。您可以使用数据库副本创建另一个用于开发目的的项目,然后在其中部署您的应用程序,这样您就完全不用模拟器了。
    4. 数据存储区的请求是通过 endpoint https://datastore.googleapis.com/v1/projects/project-id 发出的,尽管这与模拟器如何管理本地服务器中的连接无关。

    希望这会有所帮助。

    【讨论】:

    • 当我运行命令dev_appserver.py 时没有像Starting Cloud Datastore emulator at: http://localhost:PORT 这样的语句。目前我的代码根本不与数据库交互
    • 我有这个Starting module "data-exporter" running at: http://127.0.0.1:8081
    • 首先编写一些代码来与数据库交互并尝试运行第 2 步。您可以查看 documentation about ndb 客户端库并使用 Google 的 Github repository 示例。
    猜你喜欢
    • 2019-05-04
    • 2012-03-22
    • 2011-11-04
    • 1970-01-01
    • 2013-01-25
    • 1970-01-01
    • 2014-08-02
    • 1970-01-01
    • 2020-08-19
    相关资源
    最近更新 更多