您好,登錄后才能下訂單哦!
AWS里面無服務(wù)器服務(wù)模式(Serverless)是一個近兩年很熱門的技術(shù),他可以允許服務(wù)無需任何服務(wù)器配置就可以在需要的時候執(zhí)行代碼。
下面看一個簡單的例子如何通過Lambda,API Gateway, S3等云服務(wù)來實現(xiàn)一個最基本的無服務(wù)器架構(gòu)模式。
例1:在某個網(wǎng)頁上點擊一個按鈕, 更新網(wǎng)頁的內(nèi)容。
簡單說明一下流程,用戶訪問S3的一個靜態(tài)網(wǎng)站,點擊一個按鈕,執(zhí)行一個javascript的AJAX的Get操作,調(diào)用Amazon API Gateway,這個Gateway調(diào)用對應(yīng)的Lambda 函數(shù),返回結(jié)果到網(wǎng)頁
首先我們創(chuàng)建一個新的Lambda函數(shù)
選擇高級語言和IAM Role
創(chuàng)建之后的界面,最中間顯示函數(shù)名,然后旁邊顯示他可以訪問的資源
然后我們輸入自己的代碼,代碼很簡單,返回一個JSON格式的值
然后添加一個觸發(fā)器,這里選擇API Gateway
選擇新建API
然后可以點擊API的名字,進入API Gateway的配置界面。他的默認Action是 Any。刪掉,然后新建一個Get的Action
新建一個Get的method,綁定我們的函數(shù)
流程示意圖
回到Lambda的界面,可以看見自動生成的API Endpoint。直接訪問他就可以調(diào)用我們的函數(shù)了。
下一步,我們需要創(chuàng)建一個S3的bucket,具體不多說了。建好之后,選擇建立一個靜態(tài)的網(wǎng)站,并上傳我們的index.html和error.html
下面是我們的index.html的內(nèi)容,當(dāng)點擊按鈕的時候,他會執(zhí)行javascript的方法,然后執(zhí)行一個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>
<h2>Hello <span id="my-demo">Guys !</span></h2>
<button onclick="myFunction()">Click me</button>
<br>
</div>
</body>
</html>
訪問一下這個靜態(tài)網(wǎng)頁,可以看見界面如下
點擊按鈕,成功獲取了我們在Python腳本里面設(shè)置的內(nèi)容
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。