? "name": "book-app",
? "version": "1.0.0",
? "description": "Serverless book management API",
? "dependencies": {
??? "@hapi/joi": "^15.0.3",
??? "aws-sdk": "^2.466.0",
??? "uuid": "^3.3.2"
? }
}

最后,在項(xiàng)目的根目錄下運(yùn)行如下命令安裝項(xiàng)目依賴(lài)——“npm install”。從中可以看到,Serverless 框架簡(jiǎn)化了在代碼中定義基礎(chǔ)設(shè)施的過(guò)程,開(kāi)發(fā)者可以在“serverless.yml”中配置應(yīng)用程序基礎(chǔ)參數(shù)。確定參數(shù)信息后,在項(xiàng)目根目錄下創(chuàng)建一個(gè)新目錄“books”。并在 books 目錄下創(chuàng)建一個(gè)文件“schema.js”,就可以定義圖書(shū)模式及其屬性。

后無(wú)服務(wù)器時(shí)代,可以使用AWS Fargate為OpenCV項(xiàng)目創(chuàng)建無(wú)服務(wù)器API

進(jìn)行傳統(tǒng)API開(kāi)發(fā)時(shí),開(kāi)發(fā)者要通過(guò)函數(shù)才能進(jìn)行篩選、路由、批處理、拆分事件或調(diào)用其他云服務(wù)或函數(shù),但現(xiàn)在這些操作等都能通過(guò)更少的函數(shù)代碼,多數(shù)情況下甚至不需要函數(shù)代碼就能完成;它們可以被可配置的云構(gòu)造,以云服務(wù)一部分的形式取而代之。

云計(jì)算市場(chǎng)正在向超專(zhuān)業(yè)化的垂直多云服務(wù)轉(zhuǎn)變,提供獨(dú)特且高細(xì)粒度的功能,專(zhuān)業(yè)滿(mǎn)足開(kāi)發(fā)人員的需求。AWS的出現(xiàn),將無(wú)需管理基礎(chǔ)設(shè)施,即可根據(jù)事件執(zhí)行代碼的概念引入主流視線(xiàn),開(kāi)發(fā)者可以通過(guò)AWS,輕松實(shí)現(xiàn)函數(shù)代碼到云構(gòu)造的過(guò)渡。

以在帶有AWS Fargate的無(wú)服務(wù)器容器中部署在OpenCV和Flask中創(chuàng)建的簡(jiǎn)單圖像識(shí)別模型為例,開(kāi)發(fā)者需要在CDK項(xiàng)目中部署的網(wǎng)絡(luò)資源,打開(kāi)網(wǎng)址https://medium.com/@JugueDev/despliega-laravel-usando-containers-serverless-con-aws-fargate-%EF%B8%8F-%EF%B8%8F-f4fdcb6c170f,并在Flask中創(chuàng)建一個(gè)超級(jí)基礎(chǔ)的應(yīng)用程序,創(chuàng)建一個(gè)hello_app.py文件,其中包含以下內(nèi)容:

from?flask?import?Flask

app?=?Flask(__name__)

@app.route('/')
def?hello_world():
?return?'Hello?World!'

if?__name__?==?"__main__":
?app.run()。

接著,開(kāi)發(fā)者需要在新創(chuàng)建的文件中定義requirements.txt項(xiàng)目的依賴(lài)關(guān)系:

Flask==2.0.2,并用Docker容器應(yīng)用程序創(chuàng)建一個(gè)DockerFile。最后,把OpenCV應(yīng)用程序連接到Flask項(xiàng)目,在requirement.txt文件中添加幾個(gè)依賴(lài)項(xiàng)

click==8.0.3
Flask==2.0.2
itsdangerous==2.0.1
Jinja2==3.0.2
MarkupSafe==2.0.1
Werkzeug==2.0.2
numpy
keras
cmake==3.20.5
scikit-build==0.13.1
setuptools==50.3.2
wheel==0.30.0
tensorflow
opencv-python==4.4.0.46

圖像構(gòu)建成功后,開(kāi)發(fā)者就可以繼續(xù)將其上傳到存儲(chǔ)庫(kù)中。并在AWS Fargate中部署圖像到AWS Fargate的無(wú)服務(wù)器。

現(xiàn)行無(wú)服務(wù)器API的實(shí)操,以API Gateway為例

API Gateway是一個(gè)完全托管的服務(wù),它使得開(kāi)發(fā)者可以輕松創(chuàng)建、發(fā)布、維護(hù)、監(jiān)控和保護(hù)任何規(guī)模的API。與Lambda結(jié)合使用時(shí),API Gateway可以作為L(zhǎng)ambda函數(shù)的前端觸發(fā)器,接收HTTP請(qǐng)求并將其轉(zhuǎn)發(fā)給Lambda函數(shù)處理,然后返回響應(yīng)。

假設(shè)開(kāi)發(fā)者要?jiǎng)?chuàng)建一個(gè)簡(jiǎn)單的API Gateway,需要遵循以下步驟:

  1. 在API Gateway控制臺(tái)中,選擇“創(chuàng)建API”。
  2. 選擇“REST API”。
  3. 輸入API名稱(chēng),例如“HelloWorldAPI”。
  4. 在資源下創(chuàng)建一個(gè)新的資源,例如“/hello”。
  5. 為“/hello”資源創(chuàng)建一個(gè)GET方法。
  6. 將GET方法的集成類(lèi)型設(shè)置為“Lambda函數(shù)”。
  7. 選擇之前創(chuàng)建的Lambda函數(shù)。
  8. 部署API到一個(gè)新的階段,例如“prod”。

這樣,就可以創(chuàng)建一個(gè)公開(kāi)的HTTP端點(diǎn),當(dāng)開(kāi)發(fā)者訪問(wèn)這個(gè)端點(diǎn)時(shí),API Gateway會(huì)觸發(fā)Lambda函數(shù),并將函數(shù)的響應(yīng)返回給客戶(hù)端。

此外,開(kāi)發(fā)者還可以將Lambda和API Gateway結(jié)合起來(lái),創(chuàng)建一個(gè)無(wú)服務(wù)器的HTTP API。用戶(hù)的HTTP請(qǐng)求通過(guò)API Gateway路由到Lambda函數(shù),函數(shù)處理請(qǐng)求后返回響應(yīng),整個(gè)過(guò)程無(wú)需服務(wù)器。

參考網(wǎng)站:

https://dreamit.blog.csdn.net/article/details/131746520

https://mp.weixin.qq.com/s/9T5HOXiDgOwgHuk9k1dVWg

https://mp.weixin.qq.com/s/8pnE8uK25jbvn433YdNs2w

https://mp.weixin.qq.com/s/IF_kVSUcujAAONwFoIPhvA

https://mp.weixin.qq.com/s/RadtEe09MYxZiK7DjuHbeg

https://mp.weixin.qq.com/s/qJh3Xexo3tzMQDYht5V5qQ

https://mp.weixin.qq.com/s/0RvSmFIR_Ao1auZ6w79D1g

上一篇:

HTTP API vs WebSocket API:選擇哪個(gè)來(lái)實(shí)現(xiàn)實(shí)時(shí)通信?

下一篇:

2024 年頂級(jí) Python REST API 框架
#你可能也喜歡這些API文章!

我們有何不同?

API服務(wù)商零注冊(cè)

多API并行試用

數(shù)據(jù)驅(qū)動(dòng)選型,提升決策效率

查看全部API→
??

熱門(mén)場(chǎng)景實(shí)測(cè),選對(duì)API

#AI文本生成大模型API

對(duì)比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力

25個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)

#AI深度推理大模型API

對(duì)比大模型API的邏輯推理準(zhǔn)確性、分析深度、可視化建議合理性

10個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)