溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

AWS - Serverless 和 lambda

發(fā)布時間:2020-08-04 08:55:10 來源:網(wǎng)絡(luò) 閱讀:4672 作者:beanxyz 欄目:云計算

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)頁

AWS -  Serverless 和 lambda

首先我們創(chuàng)建一個新的Lambda函數(shù)

AWS -  Serverless 和 lambda

選擇高級語言和IAM Role

AWS -  Serverless 和 lambda

創(chuàng)建之后的界面,最中間顯示函數(shù)名,然后旁邊顯示他可以訪問的資源

AWS -  Serverless 和 lambda

然后我們輸入自己的代碼,代碼很簡單,返回一個JSON格式的值

AWS -  Serverless 和 lambda

然后添加一個觸發(fā)器,這里選擇API Gateway
AWS -  Serverless 和 lambda

選擇新建API

AWS -  Serverless 和 lambda

然后可以點擊API的名字,進入API Gateway的配置界面。他的默認Action是 Any。刪掉,然后新建一個Get的Action

AWS -  Serverless 和 lambda

新建一個Get的method,綁定我們的函數(shù)

AWS -  Serverless 和 lambda

流程示意圖
AWS -  Serverless 和 lambda

回到Lambda的界面,可以看見自動生成的API Endpoint。直接訪問他就可以調(diào)用我們的函數(shù)了。
AWS -  Serverless 和 lambda

下一步,我們需要創(chuàng)建一個S3的bucket,具體不多說了。建好之后,選擇建立一個靜態(tài)的網(wǎng)站,并上傳我們的index.html和error.html

AWS -  Serverless 和 lambda

下面是我們的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)頁,可以看見界面如下

AWS -  Serverless 和 lambda

點擊按鈕,成功獲取了我們在Python腳本里面設(shè)置的內(nèi)容
AWS -  Serverless 和 lambda

向AI問一下細節(jié)

免責(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)容。

AI