基於亞馬遜AWS-如何快速搭建Lambda架構

  • 2020 年 2 月 24 日
  • 筆記

基於亞馬遜AWS-如何快速搭建Lambda架構

在Amazon Web Services (AWS)中,Lambda是最流行的服務之一。要定義它,Lambda是一個無服務器的計算軟件,它自動將您作為函數上傳的任何代碼上載到它。使用AWS Lambda,開發人員無需編寫太多代碼、啟動服務器、配置服務器或為它們的運行支付費用。Lambda讓節省成本和資源完成任務工作成為可能。它還允許用戶編寫簡單的函數,然後將這些函數連接到一個請求或一個事件,在此之後,每當請求/事件發生時,Lambda都會執行該函數。此外,用戶只有在代碼運行時才會實行收費。

由於所有AWS服務都與其他服務集成在一起,Lambda可以使用其他幾個AWS服務(包括DynamoDB、Alexa、S3等)來使用這些服務中的事件來激活用戶的操作。因此Lambda是測試Amazon cloud和開發每個人都需要的東西的有效方法。

用戶只需12步就可以開始使用Lambda。

步驟一:創建AWS賬戶

第一步是創建一個AWS帳戶。許多人已經擁有了一個賬戶,因為他們可以使用與購物相同的亞馬遜賬戶。一旦用戶擁有了該帳戶,他們就可以租用計算機並部署他們喜歡的任何東西。

步驟二:規劃架構

最好不要立即開始使用Amazon中的示例編寫代碼。理想情況下,用戶應該設想整個過程:在應用程序中創建、分析和分發數據的方式。

步驟三:選擇一個Amazon數據源

這是數據存儲的一個重要步驟。這對於所有應用程序都是至關重要的。一旦用戶確定了數據流,他們就應該對其存儲做出決定。這變得很困難,因為在Amazon中有太多的選項可用。S3存儲足以存儲基本的位塊;對於更結構化的數據,在Amazon中可以使用Aurora、DynamoDB和其他複雜的選項來分析和組織數據。

應該考慮數據結構和用於分析相同數據結構的代碼。例如,Aurora是一個支持sql的數據庫,其功能類似於PostgreSQL/MySQL;用戶可以使用SQL代碼並直接應用它來獲得高級查詢和現有表格結構的好處。

步驟四:準備一個事件列表

Lambda函數由事件(如新文件的開始或用戶訪問網頁時)提示。這個事件列表將有助於理解Lamda應用程序,並將說明它對數據和時間做了什麼。

幾乎所有Amazon的服務都可以創建Lambda函數。例如,它可以像調用web地址一樣簡單。

步驟五:看看其他AWS服務

AWS提供了許多服務來幫助用戶。因此,對於用戶來說,探索是否可以通過使用Amazon Run API來跳過代碼編寫是更可行的,這樣可以使用戶更快地完成工作。AWS提供分析、安全、機器學習、遊戲開發和其他一些領域的服務。Lambda可以看作是所有AWS選項的鏈接。使用Amazon服務,可以替換管道沿途的各個站點。

步驟六:選擇編程語言

Lambda直接支持幾種編程語言,包括Java、Python、c#和JavaScript。如果用戶需要使用任何其他編程語言中的其他一些代碼,那麼很有可能它可以被Java或JavaScript複製。

在用戶選擇一種編程語言之後,他們應該下載開發工具並熟悉demo示例。需要搞清楚的是Lambda不同於任何其他開發程序,比如Python或Java。使用Lambda,開發者將只編寫一個函數,該函數功能的生命周期將很短。用戶將不會體會到其他平台的靈活度。Lambda運行時將假設開發者的代碼會接收一小數據包數據,然後做出決策,然後選擇繼續處理數據。

步驟七:搭建開發環境

用戶應該為他們選擇的編程語言選擇合適的環境。使用流行的工具和模型,Amazon試圖吸引開發人員,即使可能會有重疊。Amazon還為任何功能提供了良好的基於web的編輯器,這意味着用戶不必在本地做太多工作。

步驟八:編寫函數

寫一個函數。該函數將使用戶能夠向他人調用其他函數,如庫;這與編寫大型應用程序沒什麼不同。

步驟九:打包應用

用戶的Lambda應用程序有可能先於自己部署,特別是如果他們使用雲開發工具的話。Amazon提供了多個級別的生產和登台,使用戶能夠設置一個更好的測試工作流和開發。

步驟十:意識到這些限制

當用戶為他們的計算機編寫軟件時,可以把他們的軟件看作是最終的權威。他們應該記住他們的機器是由他們的軟件控制的。他們編寫的lambda代碼就像一個根據AWS lambda運行的客戶機。因此,他們編寫的函數應該知道它在AWS手中的位置或終止的風險。

對於大多數適合Lambda模型的簡單任務,都有許多限制。例如,用戶的函數只有300秒的響應時間,否則就會被關閉。它只能使用3008mb內存、1024個文件描述符和1024個線程。

其中大多數可能並不適用於所有用戶。然而,最好是精通極限,而不是做假設。Lambda肯定會擴展用戶的應用程序以幫助滿足需求,但它不會以所有可行的方式對其進行擴展。

步驟十一:調試應用

最簡單的調試方法可以在用戶的本地機器上的開發環境中進行。它可以通過Eclipse、命令行或Visual Studio實現。這裡有可能解決大多數簡單的bug。

Lambda的內置日誌函數可以執行更複雜的調試。Lambda的日誌是監視數據流和用戶代碼對事件的反應的一種簡單而有效的方法。

步驟十二:實踐

Lambda一開始可能看起來很經濟。然而,一旦用戶超過第一個百萬次請求和第一個400,000 GB的免費計算時間,他們必須支付一小部分美分。很難準確地預測應用程序在未來將花費多少。

對於生成事件的頻率,用戶可以從簡單的體系結構決策中獲益。例如,如果他們正在開發傳感器網絡,並將其應用於AWS雲計算,他們就可以讓這些傳感器網絡每秒鐘或每小時呼叫一次。雖然提供幾乎實時且良好的服務似乎很有吸引力,但他們應該始終牢記,第一種方法在第二種方法之前還使用了3600次調用。所以在做決定之前,他們應該考慮權衡,需求,評估計算,然後就市場所能承受的成本做出決定。

部署驗收

用戶可以在安裝和運行代碼之後放鬆。與許多需要持續監視和管理的web應用程序不同,Lambda自動化了大部分任務,包括檢查滿桌/超負荷的服務器

但是,用戶仍然應該定期進行監視,以確保他們的代碼正常運行並且功能正常。在它正常運行一周以上之後,他們就可以得到一個穩定的標記,知道運行它需要花費多少錢。如果成本是不可行的,那麼是時候讓他們探索其他的選項來簡化代碼的工作,從而降低成本。