AWS裏面無服務器服務模式(Serverless)是一個近兩年很熱門的技術,他能夠容許服務無需任何服務器配置就能夠在須要的時候執行代碼。javascript
下面看一個簡單的例子如何經過Lambda,API Gateway, S3等雲服務來實現一個最基本的無服務器架構模式。html
例1:在某個網頁上點擊一個按鈕, 更新網頁的內容。java
簡單說明一下流程,用戶訪問S3的一個靜態網站,點擊一個按鈕,執行一個javascript的AJAX的Get操做,調用Amazon API Gateway,這個Gateway調用對應的Lambda 函數,返回結果到網頁api
首先咱們建立一個新的Lambda函數服務器
選擇高級語言和IAM Role架構
建立以後的界面,最中間顯示函數名,而後旁邊顯示他能夠訪問的資源less
而後咱們輸入本身的代碼,代碼很簡單,返回一個JSON格式的值ide
而後添加一個觸發器,這裏選擇API Gateway函數
選擇新建API網站
而後能夠點擊API的名字,進入API Gateway的配置界面。他的默認Action是 Any。刪掉,而後新建一個Get的Action
新建一個Get的method,綁定咱們的函數
流程示意圖
回到Lambda的界面,能夠看見自動生成的API Endpoint。直接訪問他就能夠調用咱們的函數了。
下一步,咱們須要建立一個S3的bucket,具體很少說了。建好以後,選擇創建一個靜態的網站,並上傳咱們的index.html和error.html
下面是咱們的index.html的內容,當點擊按鈕的時候,他會執行javascript的方法,而後執行一個AJAX的GET操做,從指定的API Gateway那裏獲取返回值
<html> <head> <script> function myFunction() { var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { document.getElementById("my-demo").innerHTML = this.responseText; } }; xhttp.open("GET", "https://br6b44zf93.execute-api.ap-southeast-2.amazonaws.com/default/Demo1", true); xhttp.send(); } </script> </head> <body> <div align="center"> <br> <br> <br> <br> <h1>Hello <span id="my-demo">Guys !</span></h1> <button onclick="myFunction()">Click me</button> <br> </div> </body> </html>
訪問一下這個靜態網頁,能夠看見界面以下
點擊按鈕,成功獲取了咱們在Python腳本里面設置的內容