![](/img/trans.png)
[英]APP Engine Google Cloud Storage - Error 500 when downloading a file
[英]Serve static SPA from Google Cloud Storage and API from Google App Engine
我有一個 static web 客戶端 SPA,由 REST ZDB974238714831DE634A7CED1 提供服務我試圖找出在谷歌雲平台上托管這些應用程序的最佳方式,使用 App Engine 托管 API,並使用雲存儲托管 static web 客戶端。
如果我從頭開始這樣做,一個簡單的反向代理可以管理 API 和客戶端資產之間的路由流量。 為了對 GCP 做同樣的事情,我查看了以下內容:
以上所有都有局限性。 我正在嘗試做的似乎相當傳統,但我不確定 GCP 上阻力最小的路徑是什么。
Google Cloud 存儲允許您托管 static 網站: https://cloud.google.com/storage/docs/hosting-static-website
您不需要使用 Endpoint 或 AppEngine 作為反向代理
如果您需要基於路由設置負載均衡器,或者需要設置 ssl 證書,您可以使用存儲桶作為服務后端: https://cloud.google.com/compute/docs/load-balancing/http/backend -桶
正如您正確地觀察到的那樣,您的設置可能會出現許多復雜情況。 谷歌雲存儲只是一個存儲,它可能不一定像你想要的那樣管理對 GAE 的請求。 也許,在這種情況下使用 Endpoints 將是一個更可行的解決方案(考慮到您列出的選項),您可以使用簡單的 Javascript 從 Google Cloud Storage 中的應用程序文件調用 GAE 應用程序中的 Endpoints。 但是,話雖如此,我認為更好的選擇是將您的 static 文件移動到 App Engine 中,如此處所述。 這將減輕在兩種不同技術之間管理資源的復雜性
讓我們談談從 Google App Engine 提供 SPA static 文件。
SPA 需要為單個索引提供許多路由。html,通常稱為rewrite
規則。 App Engine 可以通過正確配置的app.yaml handlers
部分來做到這一點。
對於真實文件部分,您提供真實路徑:
- url: /assets/
static_dir: path/to/real/files
對於這些假路由,提供入口點 index.html:
- url: /
static_file: path/to/index.html
upload: path/to/index.html
- url: /.*
static_file: path/to/index.html
upload: path/to/index.html
通過這種配置,Google 前端將提供 static 文件,而不會影響您的后端。
這是一個 Angular 應用程序,我部署到 App Engine,例如:
有關保護 API 和 CORS 策略的其他內容,您可以考慮使用dispatch.yaml
以避免跨域問題。 或者從具有雲端點的不同域提供服務(配置了 IAP jwk)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.