語(yǔ)-5分鐘內(nèi)解釋fastAPI.png)
5分鐘內(nèi)解釋FastAPI
? "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ū)模式及其屬性。
進(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ù)器。
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,需要遵循以下步驟:
這樣,就可以創(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
5分鐘內(nèi)解釋FastAPI
用于構(gòu)建 API 和微服務(wù)的 12 個(gè)流行 JavaScript 框架
全面指南:API測(cè)試定義、測(cè)試方法與高效實(shí)踐技巧
用 API 優(yōu)先和 API 模擬打破軟件交付關(guān)鍵路徑上的依賴(lài)
智能化文本處理API推薦,讓工作更高效
如何使用API快速打造健康醫(yī)療系統(tǒng)?
設(shè)計(jì)類(lèi)API:為您的應(yīng)用程序賦予強(qiáng)大的設(shè)計(jì)能力
辦公助手API,輕松應(yīng)對(duì)工作挑戰(zhàn)
API設(shè)計(jì)模式:粒度細(xì)化 vs 粒度粗化的利弊分析
對(duì)比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力
一鍵對(duì)比試用API 限時(shí)免費(fèi)