資安宣導 — 為什麼使用 PyYaml 解析 YAML 時要使用 safe_load 才對
對於任何來自未受信任來源的資料,我們都必須假設它可能含有惡意的內容。
就連 YAML 檔也是一樣的!
Posted on Jan 15, 2024 in Python 程式設計 - 中階 , Python 資訊安全 by Amo Chen ‐ 1 min read
對於任何來自未受信任來源的資料,我們都必須假設它可能含有惡意的內容。
就連 YAML 檔也是一樣的!
Posted on Jan 15, 2024 in Python 程式設計 - 中階 , Python 資訊安全 by Amo Chen ‐ 1 min read
MongoDB Write Concern 與 Read Concern 其實是使用 MongoDB 叢集(cluster)環境必須認識的重要概念,如果不認識這 2 個重要概念,就很容易寫出不符預期的操作,甚至導致 bug 產生。
本文將盡量以淺顯易懂的方式介紹 MongoDB Write Concern 與 Read Concern 。
Posted on Jan 11, 2024 by Amo Chen ‐ 6 min read
本文紀錄如何用 Docker 與 Docker Compose 架設 MongoDB replica set (或稱 MongoDB 叢集/Cluster) 。
Posted on Dec 30, 2023 in Docker by Amo Chen ‐ 3 min read
後端工程師的面試關卡,除了基本的程式設計之外,常見的一關的就是系統設計,堪稱後端工程師的申論題,沒有絕對的標準答案,但有好答案與壞答案之分。
Posted on Dec 28, 2023 in 後端面試準備 by Amo Chen ‐ 6 min read
今年以來,我一直都在嘗試像 Indie Hackers 上所分享的故事一樣,想打造可以獲利的產品、服務,之所以想這麼做,除了想測試自己的能耐之外,也想知道台灣的軟體開發者,到底能不能像軟體蓬勃發展的歐美開發者一樣,走出一條不同的路。
Posted on Dec 26, 2023 by Amo Chen ‐ 5 min read
本文將介紹 3+1 個 docker compose 的指令,讓我們能夠在執行 docker compose up
指令之前提早偵錯 docker compose file 可能存在的問題與 docker 預定的容器啟動程序,以及以指令繪製出容器之間的相依關係。
Posted on Dec 21, 2023 in Docker by Amo Chen ‐ 3 min read
使用 Docker compose 架設開發環境真的十分方便,但是隨著容器數量增多,很容易遇到多個容器都有共通設定的問題,例如多個容器都使用同一套環境變數,每新增 1 個容器,又要再重新複製貼上⋯⋯,如下列範例:
services:
web:
image: "nginx"
environment:
- DEBUG=true
- API_VERSION=v1
redis:
image: "redis:alpine"
environment:
- DEBUG=ture
- API_VERSION=v1
不過 YAML 的規格其實有針對這個問題提出解決辦法,該功能稱為 YAML anchors & aliases 這個功能可以讓我們把共通/共用的設定變成 1 個可引用的區塊,然後如果後續需要使用這些共通/共用的設定時,可以用特殊語法直接告訴 Docker compose 去複製/引用該區塊的設定。
真的相當方便,一起來看怎麼使用吧!
Posted on Dec 16, 2023 in Docker by Amo Chen ‐ 4 min read
在使用 docker compose 架設開發環境時,會遇到所謂的服務相依性問題(service dependencies), 舉個簡單的例子,通常資料庫的容器(container)ㄧ定要先正常啟動,後端 API server 的容器才能接著啟動,因為 API server 可能在啟動時需要與資料庫連線建立 connection pool 之後,才會提供 API 服務,否則就會發生錯誤並退出執行,導致容器啟動失敗。
在這個情況下, API server 容器依賴資料庫容器的正常運作,這就是服務相依性。如果沒有理解服務相依性的問題,那麼在使用 docker compose 的時候,將會很容易遇到時而啟動成功,時而啟動失敗的問題,因為有時相依的服務會剛好準時或提早起動成功,有時則還沒準備好。
為此, docker compose 也有提供解決服務相依性的設定,那就是 depends_on 設定。
本文將教導如何使用 depends_on
設定。
Posted on Dec 14, 2023 in Docker by Amo Chen ‐ 5 min read