簡體   English   中英

谷歌雲平台:雲函數與 App Engine

[英]Google Cloud Platform: Cloud Functions vs App Engine

這可能是這個問題的錯誤地方,所以如果需要請重新指導我。

我使用 Google Cloud Functions 部署了幾個簡單的函數,它們執行以下操作:

  1. 從 AWS 讀取文件並寫入雲 SQL
  2. 聚合 Cloud SQL 數據並將 csv 文件寫入 Cloud Storage 存儲桶
  3. 聚合數據的簡單 OLS 預測 model

我將這些作為單獨的函數,因為 (1) 通常需要比 Cloud Function 最大超時時間更長的時間。 正因為如此,我正在考慮將這整個事情作為一項服務轉移到 App Engine。 我對 App Engine Standard 的問題是:

  1. 請求超時是什么意思? 如果我要運行這個服務,我是否還有一個很短的時間限制,之后它就不再運行了?
  2. App Engine 是完成此任務的最佳選擇嗎?

感謝你的幫助

根據Google 文檔,GAE 標准對於 http 請求的最大超時為 1 分鍾,對於舊環境的 cron/tasks 為 10 分鍾。 較新的環境將 http 請求和任務都設置為 10 分鍾。 如果您的功能花費的時間比這些時間長,那么 GAE 標准將不適合您。 對於這種情況,您應該查看 GAE Flex - 請參閱此Google 文檔,該文檔將 Flex 與標准進行了比較)。

其次,在我看來,您所擁有的只是偶爾或在特定預定時間才會被擊中的端點。 如果是這樣,我還建議您看一下Cloud Run 我們有一篇關於它的博客文章,我們有這個

....關於 Cloud Run 的另一個需要注意的是,它僅在收到 HTTP 請求時運行。 當 HTTP 請求進入時,它會死機並執行您的代碼。當它執行完請求后,它會再次“死機”,直到下一個請求進入。這意味着您無需為閑置時間付費,即當它什么都不做時......

  1. 您可以保持 Cloud Functions 和 3 個 Functions 各自實現的強大內聚性,然后您可以使用Cloud Workflows一種無服務器解決方案來編排 3 個 CF 調用。 缺點:您需要為 3 個 CF 調用和 3 個工作流步驟付費。 但這有關系嗎? 由於 200 萬次 CF 調用是免費的,並且 5000 個工作流步驟是免費的。
  2. 正如@NoCommandLine 所提議的那樣,Cloud Run 確實是一種替代方案,其超時時間為 3600s(1h)。 缺點:您需要將代碼包裝在 http 請求中,並提供像 express 或 gunicorn 這樣的網絡服務器。
  3. 一個 hack 是為您的代碼構建一個 docker 容器,而不需要網絡服務器,並使用Cloud Build運行它,超時為 24 小時。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM