
5分鐘內解釋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"
? }
}
最后,在項目的根目錄下運行如下命令安裝項目依賴——“npm install”。從中可以看到,Serverless 框架簡化了在代碼中定義基礎設施的過程,開發者可以在“serverless.yml”中配置應用程序基礎參數。確定參數信息后,在項目根目錄下創建一個新目錄“books”。并在 books 目錄下創建一個文件“schema.js”,就可以定義圖書模式及其屬性。
進行傳統API開發時,開發者要通過函數才能進行篩選、路由、批處理、拆分事件或調用其他云服務或函數,但現在這些操作等都能通過更少的函數代碼,多數情況下甚至不需要函數代碼就能完成;它們可以被可配置的云構造,以云服務一部分的形式取而代之。
云計算市場正在向超專業化的垂直多云服務轉變,提供獨特且高細粒度的功能,專業滿足開發人員的需求。AWS的出現,將無需管理基礎設施,即可根據事件執行代碼的概念引入主流視線,開發者可以通過AWS,輕松實現函數代碼到云構造的過渡。
以在帶有AWS Fargate的無服務器容器中部署在OpenCV和Flask中創建的簡單圖像識別模型為例,開發者需要在CDK項目中部署的網絡資源,打開網址https://medium.com/@JugueDev/despliega-laravel-usando-containers-serverless-con-aws-fargate-%EF%B8%8F-%EF%B8%8F-f4fdcb6c170f,并在Flask中創建一個超級基礎的應用程序,創建一個hello_app.py文件,其中包含以下內容:
from?flask?import?Flask
app?=?Flask(__name__)
@app.route('/')
def?hello_world():
?return?'Hello?World!'
if?__name__?==?"__main__":
?app.run()。
接著,開發者需要在新創建的文件中定義requirements.txt項目的依賴關系:
Flask==2.0.2,并用Docker容器應用程序創建一個DockerFile。最后,把OpenCV應用程序連接到Flask項目,在requirement.txt文件中添加幾個依賴項
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
圖像構建成功后,開發者就可以繼續將其上傳到存儲庫中。并在AWS Fargate中部署圖像到AWS Fargate的無服務器。
API Gateway是一個完全托管的服務,它使得開發者可以輕松創建、發布、維護、監控和保護任何規模的API。與Lambda結合使用時,API Gateway可以作為Lambda函數的前端觸發器,接收HTTP請求并將其轉發給Lambda函數處理,然后返回響應。
假設開發者要創建一個簡單的API Gateway,需要遵循以下步驟:
這樣,就可以創建一個公開的HTTP端點,當開發者訪問這個端點時,API Gateway會觸發Lambda函數,并將函數的響應返回給客戶端。
此外,開發者還可以將Lambda和API Gateway結合起來,創建一個無服務器的HTTP API。用戶的HTTP請求通過API Gateway路由到Lambda函數,函數處理請求后返回響應,整個過程無需服務器。
參考網站:
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