【问题标题】:How can two AppEngine applications inter-communicate?两个 AppEngine 应用程序如何相互通信?
【发布时间】:2012-04-24 13:22:42
【问题描述】:

我尝试在 Google App Engine 中构建应用程序,但我有一些问题不知道如何解决。

我尝试构建两个应用程序,一个是从用户那里获取一个字符串,另一个是像分割或加密一样处理字符串。

我的问题是如何在 Google App Engine 中的两个应用程序之间传输字符串?我可以构建一个应用程序只处理字符串,不呈现WEB页面。

谁能给我一些建议?非常感谢。

【问题讨论】:

  • 是否有某些特殊原因需要将一个简单的函数拆分为两个单独的应用程序?在我看来,您试图解决的问题只不过是 AppEngine 非常轻松自然地完成的简单请求/响应。我强烈建议您阅读入门指南中的示例:; developers.google.com/appengine/docs/python/gettingstarted
  • @user1353777:为什么要两个独立的应用程序?
  • 我想模拟两个不同的服务提供者,一个可以从用户那里获取字符串,另一个是处理字符串。用户只需要知道第一个服务提供商。

标签: google-app-engine


【解决方案1】:

两个 AppEngine 应用程序相互通信的唯一方法是通过正常的 HTTP 请求/响应模型。对于您的情况,我们将有 App A,它回答来自用户的请求,用户提供要处理的字符串。 App B 会收到来自 App A 的请求,并传递要处理的字符串。

  1. App A 处理 URL /providestring?string=... 其中... 是任意值
  2. App B 处理 URL /processstring?string=...,其中 ... 是任意值
  3. 用户使用浏览器或编写调用/providestring的应用程序
  4. 应用 A 的 URL 处理代码运行并提取 string 参数的值
  5. App A 使用 URLFetch 调用 App B 的 /processstring
  6. App B 的 URL 处理代码运行并提取 string 参数的值并执行它所做的任何类型的处理, 向调用者发送某种响应。

【讨论】:

    【解决方案2】:

    一种方法是拥有一个共享数据库。应用 A 会获取用户数据并将其保存到数据库中。 App B 会拉取用户数据并进行处理。

    已接受的功能请求是多个 App Engine 应用程序共享数据存储访问 [1]。

    多个 App Engine 应用程序可以共享对 Google Cloud SQL 实例 [2] 的访问权限。

    To grant access to your App Engine application:
    
    From the Google Cloud SQL pane of the APIs Console, find the instance that you 
    want to grant access to and click the on the name of your instance.
    Click on the Instance settings button on the instance's dashboard.
    On the Instance settings window that appears, enter your Google App Engine
    application ID under the Authorized applications section. You can grant access to
    multiple applications, by entering them one at a time.
    

    注意:您可以通过一个使用数据存储的应用程序来实现这一点。以下是一些公认的模式:

    1. RequestHandler 接收用户数据,将任务排队以处理数据并保存。
    2. RequestHandler 接收用户数据并保存。 cron 作业会提取该类型的所有最新模型、处理它们并保存处理后的数据。

    [1]https://code.google.com/p/googleappengine/issues/detail?id=1300

    [2]https://developers.google.com/cloud-sql/docs/before_you_begin#configure_access_control

    【讨论】:

    • 两者都很好,但都不能真正帮助用户解决他们的问题。
    • 我想我遗漏了一点“如果您想使用一个共享数据库,其中一个从用户获取并写入数据库,而另一个从数据库读取并处理数据,这就是你可以做到”
    猜你喜欢
    • 2022-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多