Python 谷歌应用引擎数据存储和外部数据库的最佳选择?

Python 谷歌应用引擎数据存储和外部数据库的最佳选择?,python,django,google-app-engine,google-cloud-datastore,Python,Django,Google App Engine,Google Cloud Datastore,我需要一个应用程序引擎应用程序与外部数据库对话并共享数据 我能想到的最佳选择是将外部数据库数据输出到一个xml文件,然后在我的app engine应用程序中进行处理,并将其存储在数据存储中 虽然共享的数据是敏感数据,如登录详细信息,因此将其输出到xml文件并不是一个好主意,但app engine应用程序是否可以直接查询数据库?或者是否有一个使用xml文件的安全选项 OH和IM使用Python/Django,外部数据库将托管在另一个域 < P>。您可能需要考虑在数据库托管的外部域上公开一组Web

我需要一个应用程序引擎应用程序与外部数据库对话并共享数据

我能想到的最佳选择是将外部数据库数据输出到一个xml文件,然后在我的app engine应用程序中进行处理,并将其存储在数据存储中

虽然共享的数据是敏感数据,如登录详细信息,因此将其输出到xml文件并不是一个好主意,但app engine应用程序是否可以直接查询数据库?或者是否有一个使用xml文件的安全选项


OH和IM使用Python/Django,外部数据库将托管在另一个域

< P>。您可能需要考虑在数据库托管的外部域上公开一组Web服务,然后使用AppEngine通过.< /P> < P>谷歌应用程序(SDC)与外部域通信。是为这类任务而设计的——事实上,它甚至可以在“其他数据库”位于防火墙(企业数据的常见情况)后以及其他谷歌应用程序(文档、电子表格等)和应用程序引擎时工作

概括起来,流程是:

  • 谷歌应用转发授权数据 来自内部用户的请求 将Google应用程序域添加到Google 隧道协议服务器

  • 隧道服务器验证 用户有权进行以下操作: 请求指定的资源。 谷歌隧道服务器已连接 通过加密隧道到SDC 在公司的内部 网络

  • 隧道协议允许SDC 连接到谷歌隧道服务器, 对数据进行身份验证和加密 这些信息在互联网上流动

  • SDC使用资源规则进行验证 如果用户被授权进行 对指定资源的请求

  • 可以使用可选的intranet防火墙 用于提供额外的网络 安全

  • SDC执行网络请求以 指定的资源或服务

  • 该服务验证已签名的服务 请求、检查凭据和 如果用户已授权,则返回 数据

  • 如果您不必担心防火墙,也不必担心任何安全问题,那么您可以通过直接使用
    urlfetch
    (无隧道、无验证、无加密、无过滤等)简化事情(如Daniel的回答所示)——但您担心“共享的数据是敏感数据,如登录详细信息”这表明情况并非如此


    与其他格式相比,这不是XML的问题——问题在于敏感数据不应该“清晰地”通过不受保护的通道传输,也不应该向所有人和其他人提供,而且像SDC那样,让专门的基础设施处理加密、过滤和授权问题通常更好,而不必在自己的应用程序或专用基础架构中间件中编写所有这些代码(并使其完全安全和锁定)。出于这些目的,SDC可能非常有用,即使您只需要其功能的一小部分。

    还应注意,您需要Google Apps Premier Edition或Education Edition才能使用SDC。