如何绕过Google App Engine的本地开发服务器?

时间:2017-04-29 20:42:07

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

Google App Engine的本地开发服务器非常适合测试 - 但我们也希望在Google的云中测试我们的数据库。

我们尝试设置--host option for the Local Development Server希望我们可以绕过localhost - 但它会抛出一个错误,它无法绑定我们在Google的x.appspot.com上的服务(即x是我们的项目。)

如何绕过本地开发服务器,以便我们的Python App Engine应用程序连接到云端的中的Google Cloud SQL和Cloud DataStore 而不是本地版本?

1 个答案:

答案 0 :(得分:1)

云数据存储

现在有一个客户端google-cloud-python,允许您直接访问数据存储区,假设客户端具有正确的凭据。

尝试此操作的最简单方法是使用Cloud Shell -

$ sudo pip install --upgrade google-cloud
$ python
>>> from google.cloud import datastore
>>> client = datastore.Client(project='YOUR-PROJECT-ID')
>>> query = client.query(kind='YOUR-ENTITY')
>>> for result in query.fetch():
>>>   print(result)

您可以在文档中找到有关身份验证的更多信息。

Cloud SQL

您可以通过以下方式连接到Cloud SQL实例:

  • IP地址(使用和不使用SSL)
  • Cloud SQL Proxy(二进制或Docker镜像)
  • MySQL套接字库(仅限Java)
  • 转到代理库(仅限访问)
  • Cloud Shell(使用临时IP白名单)

我建议您通过Cloud SQL Proxy进行连接。

测试的替代方法

我相信也值得问问自己,您要测试的是什么以及是否可以避免直接连接到prod DB。我建议您设置一个临时环境,您可以通过脚本定期导入prod数据的子集,正确匿名敏感用户数据并针对该环境运行E2E测试,以避免对您的生产产生任何潜在的负面影响系统