【问题标题】:Communicating between App Engine, Compute Engine, and Cloud SQL在 App Engine、Compute Engine 和 Cloud SQL 之间进行通信
【发布时间】:2015-01-16 04:46:09
【问题描述】:

我是云开发新手,在找出将 App Engine、GCE 和 Cloud SQL 结合在一起的最佳方法时遇到了问题。

我有一个运行 Django 的 App Engine 应用程序,它用作 GCE 实例上发生的进程的用户界面。用户请求启动一个任务,一个 GCE 实例通过在端口 80 上运行的 RESTful API 启动,App Engine 向新启动的 GCE 实例发送一个 REST 请求以启动特定任务。

正如我现在所拥有的,App Engine 实例将任务信息存储在 Cloud SQL 实例中。我的愿望是让 GCE 实例直接与 Cloud SQL 实例通信,以便它们可以更新数据库并为 App Engine 的任务状态提供一个窗口(通过更新数据库行)。

我遇到的问题是,据我所知,文档仅指定了一种连接到 SQL 实例的方法,即通过网络访问 GCE 实例的 IP 地址。这是不可取的,因为我会频繁地启动和销毁 GCE 实例,并且 IP 地址可能会多次更改。

话虽如此,我有两个问题:

1) 有没有办法避免单独验证每个 GCE 实例的上述问题,如果没有,识别每个 GCE 实例的最佳方法是什么?

2) 我这样做的方式是否正确?正如我所说,我是云开发的新手,我在这里完全猜测这些不同的服务应该如何交互。

【问题讨论】:

  • 在不知道您在 GCE 上做什么的情况下,我无法正确回答 (2),但作为管理 App Engine 和 GCE 之间任务的一种方式,您是否看过 Task Queue API?您可以将 Python 应用程序中的任务排入队列并从 GCE 中使用它们(通过 REST API,使用服务帐户进行身份验证),而无需通过 Cloud SQL。
  • GCE 实例正在执行连接到其他网站并收集一些信息的任务。用户请求连接到哪个网站/信息,GCE 实例被生成并相应地指示,然后 GCE 告诉 App Engine 进程它已完成并通过 Cloud SQL 给出结果。我会研究一下任务队列 API,谢谢。

标签: google-app-engine google-compute-engine google-cloud-sql


【解决方案1】:

对于您需要添加到 Cloud SQL 中的授权网络的 IP,如果它是正在启动的单个实例,您可以使用 static IP address,尽管 there's a charge 用于它。 您还可以使用 API Instances:get 获取新实例的 IP 地址,以便在销毁实例时将其从授权网络中删除。 您可以使用Cloud SQL API 更新网络。

【讨论】:

    猜你喜欢
    • 2020-08-07
    • 2021-12-22
    • 2014-10-10
    • 2019-01-17
    • 2013-10-09
    • 2016-03-25
    • 2017-04-07
    • 2019-11-05
    • 2018-04-28
    相关资源
    最近更新 更多