我希望我的AppEngine网站连接到我的某个实例(Google Compute Engine),以便从本地redis服务器获取一些数据。
我该怎么做?
似乎没有办法在同一个帐户/项目中获得AppEngine和Compute Engine之间的连接...
谢谢!
答案 0 :(得分:3)
答案取决于您的Compute Engine实例接受的协议:
如果它接受HTTP(S)请求,那么您可以像往常一样使用URLFetch服务来执行HTTP调用。但是您的实例必须在互联网上公开(公共IP地址)。
如果它不接受HTTP(S)调用,例如Redis,那么您将需要使用Sockets API进行从App Engine到Compute Engine的出站呼叫。请注意,此API处于测试阶段。
然后是如何保护计算引擎实例的问题。 您无法使用IP过滤器,因为Google不会告诉您App Engine实例具有哪些IP。
对于HTTP(S)调用,一个选项是使用OAuth2。 App Engine实例在Identity service中嵌入了OAuth2标识,因此可以轻松生成可靠地标识App Engine实例的OAuth令牌。
对于其他类型的协议(MySQL,Redis,其他),您需要依赖于您在Compute Engine实例上运行的任何提供的安全性。例如,在Redis中,您可以要求密码来访问您的服务器。