Lambda 是 AWS 旗艦無伺服器服務,允許在各種運行時上運行程式碼。然而 PHP 並沒有明確地出現在官方產品描述中。這是否意味著您無法在 Lambda 上運行 PHP 程式碼?不,沒有!
在本系列中(源自我對 AWS 使用者群組 Poitiers 的一次演講),我們將討論什麼是無伺服器以及如何讓 PHP(如果這是您最喜歡的語言)在 Lambda 上運行。
無伺服器是一種託管範例,雲端供應商動態擴展分配給客戶工作負載的資源,同時不僅管理實體基礎架構(伺服器、電源冷卻),還管理執行執行時(修補等)。
從嚴格意義上講,計算量是為每個請求分配的,從而形成“從規模到零”的定價模型(沒有資源按小時付費,而是僅按實際需求比例付費),同時提供內置的高-可用性。
這增加了雲端的其他優勢,主要是一切都帶有 API,使自動化成為可能。
這些好處的總和使得擁有幾乎免費的功能分支臨時環境成為可能,從而提高開發人員的生產力和交付時間。
無伺服器生態系統中有很多解決方案。當無伺服器運算 (Lambda) 在 2014 年出現時,託管佇列 (SQS) 已經存在了十年,S3 也已經存在了 8 年。
請注意,在上面的幻燈片中,Aurora 不符合我們對Serverless 的嚴格定義,因為它不會縮放到零(v1 縮放到零,但可能需要幾分鐘才能啟動,而v2 則需要在您的寫入器和讀取器實例上至少有0.5 個ACU,以便資料庫準備好提供查詢服務。
您將在下面找到一個用於託管僅涉及無伺服器服務的 Web 應用程式的典型架構。對於有限數量的用戶來說,託管此類應用程式的成本可能低於 1 美元/年。Serverless 只適用於微服務嗎?
用於解決微服務常見挑戰的無伺服器選項:編排和編排
然而,當我們有多個單一用途的功能時,實現業務邏輯可能需要功能之間的協調。這種協調可以使用兩種基本模式來實現。
當您部署 Lambda 時,您可以選擇它來運行所需的記憶體量。分配的CPU是成比例的。然後,您根據使用的毫秒數付費。例如,128Mb Lambda 的成本為 1.7*10^-9$/ms。在您花費第一美元之前,這需要 164 小時的計算時間。
還有 Lambda 尺度。快速地。比其他任何事情都快得多。不會再出現因流量變化較大而導致的 429 錯誤(如果您的工作負載沒有得到很好的保護,則為 500 錯誤)。
使用 LambdaLiths 解決主要挑戰:冷啟動
Lambda 執行環境在給定時間僅處理一個請求,並可重複用於後續請求。這意味著,為了擴展 Lambda 函數,或者當 Lambda 函數有一段時間沒有被呼叫時,Lambda 將必須啟動一個新的執行環境:這是一個冷啟動。PHP 支援怎麼樣?
官方產品常見問題解答指出它「原生支援Java、Go、PowerShell、Node.js、C#、Python 和Ruby 程式碼,並提供執行時間API,允許您使用任何其他程式語言來編寫函數。」
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3