通过Google云端存储提供静态SPA,并通过Google App Engine提供API

时间:2018-06-12 15:06:29

标签: google-app-engine google-cloud-platform google-cloud-storage google-cloud-endpoints

我有一个由REST API提供服务的静态Web客户端SPA。我正在尝试找出在Google云平台上使用App Engine托管这些应用程序以托管API的最佳方式,以及用于托管静态Web客户端的云存储。

如果我从头开始这样做,一个简单的反向代理可以管理API和客户端资产之间的路由流量。为了与GCP做同等的事情,我看了下面的内容:

  • Google的计算引擎支持content-based load balancing:虽然没有相应的App Engine
  • App Engine上的API可以代理对云存储的请求,但代价是不必要的API服务负载
  • 只需将API和客户端托管在不同的域(分别是App Engine和云存储)上,并正确配置跨域问题
  • 使用Google Cloud Endpoints作为反向代理,在App Engine和云存储之间正确路由流量:尚未完全探索此选项,但在编写时,Cloud Endpoints执行not support routing to multiple hosts(仅定义)在OpenAPI规范的第3版中。

以上所有都有局限性。我想要做的似乎相当传统,但我不确定GCP阻力最小的路径是什么。

2 个答案:

答案 0 :(得分:0)

Google云端存储允许您托管静态网站: https://cloud.google.com/storage/docs/hosting-static-website

您不需要使用Endpoint或AppEngine作为反向代理

如果您需要根据路由设置负载均衡器,或者您需要设置ssl证书,则可以将存储桶用作服务后端: https://cloud.google.com/compute/docs/load-balancing/http/backend-bucket

答案 1 :(得分:0)

正如您正确观察到的那样,设置可能会涉及许多复杂因素。 Google Cloud Storage只是一种存储,它不一定按照您的意愿管理对GAE的请求。在这种情况下(考虑您列出的选项),使用Endpoints可能是一个更可行的解决方案,您可以在其中使用简单的Javascript从Google Cloud Storage中的应用程序文件中调用GAE应用程序中的Endpoints。不过,话虽这么说,我认为更好的选择是按照here所述将静态文件移至App Engine。这将减轻两种不同技术之间管理资源的复杂性