AWS: 在AWS上創(chuàng)建一個(gè)網(wǎng)站,綜合運(yùn)用(Lambda + Api Gateway + Dynamodb + S3)

來(lái)源:CSDN軟件開(kāi)發(fā)網(wǎng)
作者:wucong60
時(shí)間:2020-06-17
3799
本文將創(chuàng)建一個(gè)微型網(wǎng)站,以達(dá)到綜合運(yùn)用AWS服務(wù)的目的。

簡(jiǎn)介

本文將創(chuàng)建一個(gè)微型網(wǎng)站,以達(dá)到綜合運(yùn)用AWS服務(wù)的目的:

1.Dynamodb:一種完全托管的NoSQL數(shù)據(jù)庫(kù)服務(wù)

2.Lambda:實(shí)現(xiàn)具體的業(yè)務(wù)邏輯,基于python3編寫,它會(huì)調(diào)用dynamodb數(shù)據(jù)庫(kù)。

3.API Gateway:一種完全托管的服務(wù),可以幫助開(kāi)發(fā)者輕松創(chuàng)建、發(fā)布、維護(hù)、監(jiān)控和保護(hù)任意規(guī)模的API。

4.S3:Host一個(gè)較為簡(jiǎn)單的靜態(tài)網(wǎng)站,并調(diào)用開(kāi)放出來(lái)的REST API

20190722175948702.png

1.創(chuàng)建Dynamodb

新建一張表(employee),以name為Primary key(partial key),再新增兩行數(shù)據(jù),如下圖所示:

20190722180615223.png

2.編寫Lambda邏輯

2.1創(chuàng)建一個(gè)Lambda名為conglambda

20190722180917956.png

2.2 lambda_function.py

lambda_function.lambda_handler作為入口函數(shù),它會(huì)調(diào)用dynamodb.

1592362967(1).png

2.3 DynamoDBService.py

此模塊會(huì)使用boto3調(diào)用dynamodb,其中AWS_ACCESS_ID和AWS_ACCESS_KEY可以在IAM--->Users-->Security credentials-->Create access key創(chuàng)建。

1592362998(1).png

2.4 employee.py

相當(dāng)于一個(gè)model類或是一個(gè)Dto類。

1592363012(1).png

3.創(chuàng)建一個(gè)API Gateway

命令為congAPI,在resources中創(chuàng)建一個(gè)新的Method,選擇Get,選擇剛創(chuàng)建的lambda

20190722182014147.png

接下來(lái),我們需要給API Gateway傳遞參數(shù),點(diǎn)擊Integration Request-->Mapping Templates中,輸入如下內(nèi)容,以便可以傳入name參數(shù)給api gateway。

20190722182308787.png

編輯好后,需要部署API Gateway,點(diǎn)擊Deploy API

20190722182532899.png

輸入Dev,點(diǎn)擊發(fā)布,會(huì)生成如下鏈接

20190722182652129.png

我們?cè)跒g覽器上輸入相應(yīng)的name參數(shù),就可以成功訪問(wèn)到相應(yīng)的數(shù)據(jù)了,此數(shù)據(jù)來(lái)源于dynamodb.

20190722182912920.png

4.使用S3服務(wù)host一個(gè)較為簡(jiǎn)單的靜態(tài)網(wǎng)站

4.1準(zhǔn)備index.html

它會(huì)使用jquery調(diào)用剛才創(chuàng)建的api gateway,具體內(nèi)容如下:

1592363048(1).png

4.2創(chuàng)建一個(gè)S3 bucket名為cong-bucket

上傳此index.html

20190722183337464.png

4.3將Permissions設(shè)置為public,以便公網(wǎng)可以訪問(wèn)到index.html

首先將Bock public access下面的4行全部改成off

20190722183614962.png

將Bucket改成public有多種方式,這里使用Bucket Policy。即所有人都可以訪問(wèn),如下圖:

20190722183754201.png

4.4啟用bucket hosting,將host一個(gè)較為簡(jiǎn)單的靜態(tài)網(wǎng)站

2019072218403916.png

20190722184125578.png

4.5驗(yàn)證與測(cè)試

訪問(wèn)此網(wǎng)站,輸入name,點(diǎn)擊search,可以看到根據(jù)輸入的不同,從數(shù)據(jù)庫(kù)中抓取相應(yīng)的內(nèi)容并顯示在網(wǎng)頁(yè)上

20190722184516747.png

20190722184538986.png

立即登錄,閱讀全文
原文鏈接:點(diǎn)擊前往 >
文章來(lái)源:CSDN軟件開(kāi)發(fā)網(wǎng)
版權(quán)說(shuō)明:本文內(nèi)容來(lái)自于CSDN軟件開(kāi)發(fā)網(wǎng),本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個(gè)人觀點(diǎn),不代表快出海對(duì)觀點(diǎn)贊同或支持。如有侵權(quán),請(qǐng)聯(lián)系管理員(zzx@kchuhai.com)刪除!
優(yōu)質(zhì)服務(wù)商推薦
更多
掃碼登錄
打開(kāi)掃一掃, 關(guān)注公眾號(hào)后即可登錄/注冊(cè)
加載中
二維碼已失效 請(qǐng)重試
刷新
賬號(hào)登錄/注冊(cè)
個(gè)人VIP
小程序
快出海小程序
公眾號(hào)
快出海公眾號(hào)
商務(wù)合作
商務(wù)合作
投稿采訪
投稿采訪
出海管家
出海管家