是否可以在 App Engine 和 Compute Engine 虚拟机之间进行连接?

Is it possible to connect between AppEngine and Computer engine's virtual machine?

我希望我的 AppEngine 站点连接到我的一个实例 (Google Compute Engine ),以便从本地 redis 服务器获取一些数据。

我该怎么做?

似乎无法在同一个 account/project...

中建立 AppEngine 和 Compute Engine 之间的连接

谢谢!

答案取决于您的 Compute Engine 实例接受的协议:

  • 如果它接受 HTTP(S) 请求,那么您可以像往常一样使用 URLFetch 服务执行 HTTP 调用。但是您的实例必须暴露在互联网上(public IP 地址)。

  • 如果它不接受 HTTP(S) 调用,例如 Redis,那么您将需要使用 Sockets API 从 App Engine 到 Compute Engine 进行出站调用。请注意,此 API 处于测试阶段。

    然后是如何保护 Compute Engine 实例的问题。 您不能使用 IP 过滤器,因为 Google 不会告诉您您的 App Engine 实例有什么 IP。

    对于 HTTP(S) 调用,一种选择是使用 OAuth2。 App Engine 实例在 Identity service 中嵌入了 OAuth2 身份,因此很容易生成能够可靠地标识 App Engine 实例的 OAuth 令牌。

    对于其他类型的协议(MySQL、Redis 等),您将需要依赖计算引擎实例上 运行 所提供的安全性。例如,在 Redis 中,您可以要求输入密码才能访问您的服务器。