簡介
本文將創(chuàng)建一個微型網(wǎng)站,以達到綜合運用AWS服務(wù)的目的:
1.Dynamodb:一種完全托管的NoSQL數(shù)據(jù)庫服務(wù)
2.Lambda:實現(xiàn)具體的業(yè)務(wù)邏輯,基于python3編寫,它會調(diào)用dynamodb數(shù)據(jù)庫。
3.API Gateway:一種完全托管的服務(wù),可以幫助開發(fā)者輕松創(chuàng)建、發(fā)布、維護、監(jiān)控和保護任意規(guī)模的API。
4.S3:Host一個較為簡單的靜態(tài)網(wǎng)站,并調(diào)用開放出來的REST API
1.創(chuàng)建Dynamodb
新建一張表(employee),以name為Primary key(partial key),再新增兩行數(shù)據(jù),如下圖所示:
2.編寫Lambda邏輯
2.1創(chuàng)建一個Lambda名為conglambda
2.2 lambda_function.py
lambda_function.lambda_handler作為入口函數(shù),它會調(diào)用dynamodb.
2.3 DynamoDBService.py
此模塊會使用boto3調(diào)用dynamodb,其中AWS_ACCESS_ID和AWS_ACCESS_KEY可以在IAM--->Users-->Security credentials-->Create access key創(chuàng)建。
2.4 employee.py
相當(dāng)于一個model類或是一個Dto類。
3.創(chuàng)建一個API Gateway
命令為congAPI,在resources中創(chuàng)建一個新的Method,選擇Get,選擇剛創(chuàng)建的lambda
接下來,我們需要給API Gateway傳遞參數(shù),點擊Integration Request-->Mapping Templates中,輸入如下內(nèi)容,以便可以傳入name參數(shù)給api gateway。
編輯好后,需要部署API Gateway,點擊Deploy API
輸入Dev,點擊發(fā)布,會生成如下鏈接
我們在瀏覽器上輸入相應(yīng)的name參數(shù),就可以成功訪問到相應(yīng)的數(shù)據(jù)了,此數(shù)據(jù)來源于dynamodb.
4.使用S3服務(wù)host一個較為簡單的靜態(tài)網(wǎng)站
4.1準備index.html
它會使用jquery調(diào)用剛才創(chuàng)建的api gateway,具體內(nèi)容如下:
4.2創(chuàng)建一個S3 bucket名為cong-bucket
上傳此index.html
4.3將Permissions設(shè)置為public,以便公網(wǎng)可以訪問到index.html
首先將Bock public access下面的4行全部改成off
將Bucket改成public有多種方式,這里使用Bucket Policy。即所有人都可以訪問,如下圖:
4.4啟用bucket hosting,將host一個較為簡單的靜態(tài)網(wǎng)站
4.5驗證與測試
訪問此網(wǎng)站,輸入name,點擊search,可以看到根據(jù)輸入的不同,從數(shù)據(jù)庫中抓取相應(yīng)的內(nèi)容并顯示在網(wǎng)頁上