- 利用 Google Cloud Storage 和 Cloud Run 建立 CDN - 2
- 這是關於如何使用 Google Cloud Storage 和 Cloud Run 建立 CDN 的第二篇文章。文章將說明如何最佳化影像和文字檔案的傳輸,以及如何將資源部署到全球 8 個區域以降低延遲。
AI 翻译的文章。
durumis AI 总结的文章
- 說明如何使用 Cloud Run 來最佳化上傳到 Google Cloud Storage 的影像檔案,並將其轉換成各種格式。
- 利用 Cloud Storage 的檔案上傳和刪除事件,將影像檔案轉換為 AVIF、WebP 格式,並壓縮文字檔案,然後將其複製到其他區域並同步刪除。
- 藉此有效管理 CDN 環境中的影像最佳化和檔案同步,並預告後續將介紹如何使用 Google Cloud Load Balancer。
在上一篇文章中,我們討論了如何使用 Cloud Run 傳輸與 GCS 同步的影像檔案。
那麼,讓我們以 CDN 系列的最後一篇文章,來探討 GCS 的同步和影像最佳化。
Cloud Run 本質上是透過 HTTP Hook 進行運作,但這並不是唯一的事件觸發器。
Cloud Run
在設定 Cloud Run 時,仔細觀察就會發現「Trigger」這個部分,在那裡查看清單,就會看到 Pub/Sub、Cloud Storage、Filestore 以及其他選項。除了預設提供的 HTTP 之外,其餘都是最常使用的產品,而其他幾乎所有你能想到的事件都包含在「其他」選項中。首先,我們選擇 Cloud Storage 事件並進入後,就會看到以下這些事件類型,例如檔案變更、檔案刪除、檔案建立以及檔案的 metadata 變更等。
Cloud Run Eventarc
在這裡,我們利用「deleted」和「finalized」這兩個事件來建立 Cloud Run,以便撰寫 GCS 檔案上傳或上傳檔案刪除的事件。
Cloud Run 需要處理的事情主要如下。
- 檔案上傳後,確認檔案類型,然後處理以下流程。
- 如果是文字檔案(css、js),則使用 br 和 gzip 進行壓縮並建立檔案。
- 如果是影像檔案,則使用sharp npm產生 avif 和 webp 格式的轉換檔案。
- 將新建立的檔案複製到其他指定的「區域」。
- 當收到檔案刪除請求時,同時刪除其他區域中的對應檔案。
基本上,只要能妥善處理上述三件事(轉換、複製、刪除),即使區域很多,檔案同步也不會太困難。在程式碼中,只要使用 GCS 連線和 sharp 這兩個 npm 套件,就能輕鬆處理。
至此,我們完成了 CDN 相關的基本文章系列。
從下一篇文章開始,我們將討論 GCLB(Google Cloud Loadbalancer)。
CDN 的討論當然需要涉及負載平衡器(LB),但內容中省略了一些部分,我們將在接下來的文章中分系列進行討論。
感謝您。