在 python 利用 FastAPI 建立 API 非常的簡單,同樣的,要測試它也非常地容易,這裡我會使用一個簡單的例子,演練 pytest 測試 API (FastAPI)

在 python 利用 FastAPI 建立 API 非常的簡單,同樣的,要測試它也非常地容易,這裡我會使用一個簡單的例子,演練 pytest 測試 API (FastAPI)
pytest 是一個功能強大且靈活的 Python 測試框架,身為一個開發者學好怎麼寫測試是基本的必要條件,以下是我對 pytest 的使用心得。
之前有介紹過 TestContainers 在 .NET 的使用方式 傳送們,同樣的 Python 也可以使用它,就不再贅述太多;我將使用 WSL + Python 環境搭建起開發環境。
由 上篇 得知 .NET Core 應用程式可以接收 SIGINT/SIGTERM訊號,來完成 graceful shutdown;在處理批次流程中,當應用程式接收到 SIGINT/SIGTERM 訊號後,就要進入狀態的保存,避免服務被強制中斷,導致狀態混亂。預設 Container 預設等待 10 sec,也就是這個時間範圍內就要完成狀態保存,如果超過時間就可以考慮送出 Timeout 參數,延長工作關閉流程。Linux 執行應用程式的時候有區分 shell model 以及 exec mode,若使用不當,會導致接收不到 SIGINT/SIGTERM 訊號,無法 graceful shutdown。
Jetbrains Rider Remote Development 是 Jetbrains 旗下的產品,可以透過 Jetbrains Toolbox 獨立安裝,也可以直接透過 Jetbrains Rider 使用,這個功能主要就是讓 Windows 的用戶可以在 WSL (Ubuntu) 環境下開發、中斷、除錯。
cAdvisor 是一個開源的容器資源使用情況和效能分析工具,主要由 Google 開發。它專門用於收集、聚合、處理和匯出有關執行中容器的資訊。
Node-Exporter 收集主機層級的各種指標,包括:CPU 使用率、記憶體使用情況、磁碟 I/O 統計、網路流量、檔案系統使用率、系統負載
再搭配上 Prometheus 收集指標,用 Grafana 呈現資訊
出自 https://blog.techbridge.cc/2019/08/26/how-to-use-prometheus-grafana-in-flask-app/
在 Windows 的環境,要使用 Docker 除了 Docker Desktop 之外,也可以使用 WSL + Docker 來完成環境的搭建
Loki 是由 Grafana Labs 開發的一款日誌系統,除了透過 http 接收 log 之外,還可以用 promtail 收集器接收、分析 log,最終,再透過 Grafana Dashboard 呈現。
下圖出自:How to setup Grafana, Loki and promtail for monitoring docker — Quentin Favrie
Nginx (讀作 engine x),是一個免費的開源軟體,具有非同步框架的 Web Server,更多的用途是作為反向代理、Http Cache、負載平衡器。久仰它許久,但對它的配置一無所知,趁假日的時候練習一波。
下圖出自網路
Docusaurus (Document(文件)+ saurus(恐龍)),是由 Facebook 推出的開源靜態網站生成工具,以 React 技術構建,提供快速建置以文檔內容為核心的網站。我在 Survey 有哪些框架可以快速的把一堆 OpenAPI 文檔,轉成靜態頁面並且搜尋頁面內容,Claude 推薦我使用 Docusaurus