AppEngine Multi后端保持自动缩放

时间:2016-12-04 21:01:15

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

我有一个带有JavaScript 跟踪器的AppEngine webapp。我希望它能够对收集器(这是一个将数据保存到BigQuery的REST API)进行HTTP调用,而无需使用OAuth / JWT或其他任何内容进行整个应用程序到应用程序的身份验证过程。

根据this thread,AppEngine无法使用位于具有内部IP的计算引擎实例上的REST API。

此外,似乎无法使用GAE multibackends功能,因为它失去了自动缩放功能,我真的需要这个功能。

实现此目标的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

我认为收集器正在计算引擎上运行,问题是如何验证对收集器的请求是来自AppEngine服务的真实请求,因为AppEngine应用程序通过公共IP到达收集器的唯一方法。

AppEngine有一个Identity API,供AppEngine断言为third party service that a request is genuine。如何使用它的更详细(和更少人为)的示例是discussed here。代码链接不再有效,但代码可用here

上一篇文章中的这个特定序列似乎或多或少是您所需要的:

  
      
  • 客户端应用程序通过调用app_identity.signForApp(string_blob)生成签名blob
  •   
  • Client App在公共端点上公开其公共证书,例如clientapp.com/certs。在下面的演示中,我们使用一个简单的Json格式来公开证书,例如:{" cert1":" x509 cert pem"," cert2":&#34 ; x509 cert pem 2" ...}。
  •   
  • 客户端应用程序向API应用程序发送请求以及签名的blob和包含客户端应用程序公共证书的URL。
  •   
  • API应用程序从该URL获取客户端应用程序的公共证书
  •   
  • API App验证签名blob的签名。 API应用程序可能会执行其他业务逻辑,例如检查客户端应用程序(由其公共证书的URL标识)是否在访问控制列表中。
  •   
  • 两个应用都应该就同一个已签名的blob'达成一致。格式。在我们的演示中,我们使用JWT作为签名的令牌格式。详细规范可在http://self-issued.info/
  • 找到