我们有一个Java 7 Google App Engine实例,我们正在尝试连接到外部API . 由于API服务器需要列入白名单的IP地址才能访问,因此我们设置了安装了Squid的Google Compute Engine代理服务器(a solution proposed elsewhere),然后将API服务器上代理服务器的外部IP地址列入白名单 .
这样,从GAE发出的请求将首先重定向到GCE,从而允许进行API调用 . 但是,GAE请求当前失败并显示以下消息:
WARNING: Google App Engine does not support the use of proxies.
有人可以建议解决方案吗?
1 回答
首先,不推荐使用Java 7运行时,因此您应该迁移到Java 8版本 . 您可以通过在appengine-web.xml文件中指定Java 8运行时来完成此操作:
随着迁移到Java 8,还有其他一些功能会发生变化 . 所有更改都会被解释为here .
如果由于配置中的某些问题而导致错误,请确保您正在使用的实例作为代理正确配置(使用Squid是正常的) . 应正确 Build 防火墙规则和访问控制列表,例如:
您还应该通过在Squid配置中启用它们来设置正确的访问控制条目 . 这里有些例子:
如果您遵循this example,则可以测试正确使用用作代理服务器的实例 .
Java中有一个名为ApiProxy(
com.google.apphosting.api
)的静态类,可用作从用户代码到应用程序服务器的所有调用的集合点 . Here您可以找到与其相关的所有类和方法,以及与ApiProxy相关的其他类 .