天天看點

AWS - Serverless 和 lambda

aws裡面無伺服器服務模式(serverless)是一個近兩年很熱門的技術,他可以允許服務無需任何伺服器配置就可以在需要的時候執行代碼。

下面看一個簡單的例子如何通過lambda,api gateway, s3等雲服務來實作一個最基本的無伺服器架構模式。

例1:在某個網頁上點選一個按鈕, 更新網頁的内容。

簡單說明一下流程,使用者通路s3的一個靜态網站,點選一個按鈕,執行一個javascript的ajax的get操作,調用amazon api gateway,這個gateway調用對應的lambda 函數,傳回結果到網頁

AWS - Serverless 和 lambda

首先我們建立一個新的lambda函數

AWS - Serverless 和 lambda

選擇進階語言和iam role

AWS - Serverless 和 lambda

建立之後的界面,最中間顯示函數名,然後旁邊顯示他可以通路的資源

AWS - Serverless 和 lambda

然後我們輸入自己的代碼,代碼很簡單,傳回一個json格式的值

AWS - Serverless 和 lambda

然後添加一個觸發器,這裡選擇api gateway

AWS - Serverless 和 lambda

選擇建立api

AWS - Serverless 和 lambda

然後可以點選api的名字,進入api gateway的配置界面。他的預設action是 any。删掉,然後建立一個get的action

AWS - Serverless 和 lambda

建立一個get的method,綁定我們的函數

AWS - Serverless 和 lambda

流程示意圖

AWS - Serverless 和 lambda

回到lambda的界面,可以看見自動生成的api endpoint。直接通路他就可以調用我們的函數了。

AWS - Serverless 和 lambda

下一步,我們需要建立一個s3的bucket,具體不多說了。建好之後,選擇建立一個靜态的網站,并上傳我們的index.html和error.html

AWS - Serverless 和 lambda

下面是我們的index.html的内容,當點選按鈕的時候,他會執行javascript的方法,然後執行一個ajax的get操作,從指定的api gateway那裡擷取傳回值

通路一下這個靜态網頁,可以看見界面如下

AWS - Serverless 和 lambda

點選按鈕,成功擷取了我們在python腳本裡面設定的内容

AWS - Serverless 和 lambda

繼續閱讀