如何處理雲端中僅在特定時間需要的虛擬機器?

如何處理雲端中僅在特定時間需要的虛擬機器?

我目前正在本地伺服器上處理視頻,我想將其外包給雲端。我對谷歌雲非常熟悉,這就是我選擇谷歌的原因。過程包括:

  • 將影片檔上傳至雲端存儲
  • 在 Compute Engine 實例中處理文件
  • 將處理後的視訊儲存到雲端存儲

平均而言,我每天需要使用 Compute Engine 實例 1 小時。有沒有一種簡單的方法可以自動啟動實例並按需關閉實例?我該怎麼做呢?

答案1

有一個更簡單的方法可以做到這一點。

GCP 提供了一項名為雲端功能。在其中,您可以放置​​由事件呼叫的腳本或觸發器。其中之一是雲端儲存觸發器它們透過 Cloud Storage 事件激活,例如物件建立(上傳檔案)或物件刪除(刪除檔案)。

雲端功能可以讀取檔案(在本例中為影片),執行其中的所有流程並傳回結果,或者在您的情況下,將結果儲存在 GCS 儲存桶中(可以與上傳檔案的位置相同,也可以是另一個)。這裡您可以找到與剛剛上​​傳的文件進行互動的程式碼範例。

要儲存您處理過的視頻,請查看雲端儲存客戶端庫。取決於您將使用的語言(雲端儲存和雲端功能支援的語言是Node.js,Python,,爪哇C#)你應該檢查程式碼範例將結果上傳到儲存桶中。

與 Compute Engine 相比,使用 Cloud Functions 是更便宜的選擇,因為您只會在需要時使用這些資源。這裡唯一的缺點是你受到以下限制:記憶體和CPU該服務支援。

如果資源(記憶體中的 128MB 到 4096MB)不適合您要執行的進程,您也可以按照以下步驟操作:

  1. 使用以下命令建立一個 Compute Engine 實例機器的種類您的用例所需的。將一個腳本放在將完成所有過程的地方。一旦創建並且一切都設定完畢,停下來
  2. 使用 GCS 事件觸發器(使用已提供的文件)建立雲端函數,並且每當呼叫它時,透過程式碼重新啟動您的 GCE。這可以透過計算引擎客戶端庫或透過應用程式介面(我可以想到用您最喜歡的語言進行 HTTPS 請求)。
  3. 將所有資訊傳送到您的 GCE 並讓機器運作(您可能需要添加一些程式碼以等待 Cloud Functions 中 GCE 的答案)。
  4. 結束後,將檔案上傳到 Cloud Storage 並讓 Cloud Functions 知道一切都已完成。
  5. 收到此確認後,請告訴 Cloud Functions 再次停止您的 GCE。

請記住,Compute Engine 會向您收費VM 運行的時間因此,採用這種替代方案還可以為您提供所需的解決方案,並以合理的價格提供所需的資源。

使用 Cloud Scheduler 安排 GCE也是一種選擇,但您並不真正知道何時使用 GCE,因此使用 Cloud Functions 將涉及更少的產品和更少的工作量。

相關內容