Serverless 教程學習手册

Published on 2023-04-20 00:10:05 · 中文 · English · بالعربية · Español · हिंदीName · 日本語 · Русский язык

什麼是Serverless?

顧名思義,Serverless教程可説明您使用Serverless函數部署 lambda 函數。 Lambda 函數正變得非常流行,因為它們減輕了使用者維護伺服器的麻煩,還因為它們只對使用者使用的時間和資源量收費。 如果您的函數運行 500 毫秒,您只需支付 500 毫秒的費用。 Serverless框架極大地簡化了將 lambda 函數從本地機器部署到 AWS 的過程,進一步減輕了使用者創建堆棧和所需資源的麻煩。 Serverless為你做一切讓你的 lambda 函數運行。 在本教程中,我們將主要著眼於配置Serverless框架。 最後提供了兩個流行的Serverless專案示例,
這個名字給了你很多提示。 無需為維護伺服器而頭疼的計算——這是Serverless計算(或簡稱Serverless)的關鍵。 這個概念非常具有革命性和破壞性。 它已被廣泛採用。 幾個新的應用程式從設計Serverless後端開始,帶有專用伺服器的遺留應用程式也在慢慢遷移到Serverless架構。 那麼是什麼導致了Serverless的廣泛採用? 與所有事情一樣,經濟學使Serverless變得非常有利。
您看,使用Serverless,您只需為使用的內容付費。 想像一下,您需要每天對資料庫執行一些日常維護。 此過程每天可能需要大約10分鐘。
現在,在沒有Serverless計算的情況下,您的維護cron可能駐留在伺服器中。 除非您在剩餘時間內有其他事情與您的伺服器有關,否則您最終可能會為一項需要 10 分鐘的任務支付 24 小時的費用。 太浪費錢了吧? 如果您被告知有一項新服務會針對您的維護 cron 執行所需的 10 分鐘向您收費,該怎麼辦? 您不想簡單地切換到該新服務嗎? 這正是Serverless採用如此迅速和廣泛的原因。 它降低了幾個組織的後端費用,也減少了他們的服務rver維護頭疼。
雲服務提供者(AWS、Azure 等)需要確保Serverless應用程式在需要時準確可用且數量充足。 因此,在高負載期間,您可能會調用多個Serverless應用程式,而在正常負載期間您可能會調用單個應用程式。 當然,您只需為高負載期間的額外調用付費。

什麼是Serverless?

上面解釋的概念看起來很棒,但你如何實現它? 你需要一個框架。 它被稱為,呃,serverless。
Serverless框架幫助我們開發和部署旨在以Serverless方式運行的功能/應用程式。 該框架向前邁進了一步,負責部署我們的Serverless功能運行所需的整個堆棧。 什麼是棧? 好吧,該堆疊包含部署、存儲和監控Serverless應用程式所需的所有資源。
它包括實際的函數/應用程式、存儲容器、監控解決方案等等。 例如,在 AWS 上下文中,您的堆疊將由您的實際 Lambda 函數、用於您的函數檔的 S3 儲存桶、Cloudwatch 資源組成連結到您的函數,等等。 Serverless框架為我們創建了整個堆疊。 這使我們能夠完全專注於我們的功能。 Serverless消除了維護伺服器的麻煩,而Serverless(框架)消除了創建和部署運行我們的功能所需的堆疊的麻煩。
Serverless框架還負責為我們的功能/應用程式分配必要的許可權。 一些應用程式(我們將在本教程中看到的範例)甚至需要將資料庫連結到它們。 Serverless框架再次負責創建和鏈接資料庫。 Serverless如何知道堆疊中包含哪些內容以及提供哪些許可權? 所有這些都在 serverless.yml 檔中提到,這將是我們在本教程中的主要關注點。 在接下來的章節中會詳細介紹。

AWS 中的Serverless

AWS 的許多服務都屬於「Serverless計算」的範疇。 您可以在此處找到完整的有序清單。 有計算服務、整合服務,甚至數據存儲服務(是的,AWS 甚至有Serverless資料庫)。 我們將在整個教程中重點介紹 AWS Lambda 函數。 那麼什麼是 AWS Lambda? AWS Lambda 網站將其定義如下-
AWS Lambda 是一種Serverless計算服務,讓您無需預置或管理伺服器即可運行代碼、創建工作負載感知集群擴展邏輯、維護事件集成或管理運行時。
就外行而言,AWS Lambda 是您在 AWS 上進行Serverless計算的視窗。 正是 AWS Lambda 讓Serverless概念如此流行。 您需要做的就是定義您的函數和您的函數的觸發器,並且該函數將在您希望它被調用的時候準確地被調用,並且您只需要為該函數執行所需的時間付費。 此外,您可以將 AWS Lambda 與 AWS 提供的幾乎所有其他服務(EC2、S3、dynamoDB 等)相關聯。
因此,如果您已經是 AWS 生態系統的一部分,那麼 Lambda 集成是非常無縫的。 如果您像我第一次瞭解 AWS Lambda 時一樣剛接觸 AWS 生態系統,它將成為通往 AWS 世界的良好門戶。
在本教程中,我們將學習有關使用Serverless框架部署 AWS Lambda 函數的所有資訊。 你興奮嗎? 然後轉到下一章開始。