跳至主要内容

將 OpenStreetMap 資料載入 PostGIS 中

· 閱讀時間約 6 分鐘
Ivan Tsai
Backend engineer

這篇文章會把 OpenStreetMap 的圖資資料載入 Postgres 資料庫中,以利我們後續建立 Tile Server 使用。

OpenStreetMap 資料

OpenStreetMap(OSM) 是開放授權的開源圖資,像 Wikipedia 一樣,任何人都可以編輯貢獻資料。只要在您的服務中標明資料來源,OSM 的資料是基於 ODbL 免費使用的。

OSM 的資料包含 nodes (建築、出入口等等)、ways (路線、區域等等)以及 relations。例如下面這是中山南路的其中一段資料,他表明了路線經過的點(nodes),以及這段路線的名稱,路線種類等等。

線上地圖是如何運作的

· 閱讀時間約 5 分鐘
Ivan Tsai
Backend engineer

最近開了個新坑,因為想要用自己的資料來製作線上地圖,Google Maps 等服務能自訂的項目並沒有很多,這個系列的文章會在沒有依賴外部服務的狀態下(當然圖資還是得由供應商取得),建立自己的地圖,包含後端的圖資料庫以及前端的渲染。

如何手動讀取 TypeScript SourceMap

· 閱讀時間約 2 分鐘
Ivan Tsai
Backend engineer

TypeScript SourceMap

我們可以在 TypeScript 的 tsconfig.json 設定 comilerOptions.sourceMap = true 來產生 Source Map 檔案,這個檔案可以讓 VS CodeChrome debugger 等工具把編譯後的 JS 檔案對應回去原始碼 (TS)。

不過如果收到 Production 上回應的 Error Stacks,想要找到對應在 TS 的程式位置,有沒有辦法快速的找到呢?

AWS instance identity documents

· 閱讀時間約 3 分鐘
Ivan Tsai
Backend engineer

Instance Metadata Service

Instance metadata 是 AWS 對你的 EC2 提供的資訊,包含 Host Name, Public IP ... 等等的資訊都可以從 Metadata Service 獲取。每個 EC2 中都能存取到位於 169.254.169.254 的 API,這個位址是 Link-local address,只有從 EC2 內部才可以存取的到。例如,我們可以由下面這個 API 獲得目前的 Public IP:

curl http://169.254.169.254/latest/meta-data/public-ipv4

Bastion Host - Teleport 介紹

· 閱讀時間約 8 分鐘
Ivan Tsai
Backend engineer

什麼是堡壘機 Bastion Host

通常我們會把內部的服務像是 Databases 或應用程式放在 Private Subnets,這些機器不能直接由 Public IP 存取,而是藉由 Load Balancers (ALB, ELB) 將流量導向內部的機器,這樣可以保護我們的服務不受外部攻擊,只讓真正需要對外的服務能夠被存取。

中繼憑證設定遺失問題

· 閱讀時間約 4 分鐘
Ivan Tsai
Backend engineer

甚麼是中繼憑證

一般來說,證書頒發機構 (certificate authority, CA) 不會用真正的根憑證 (Root Certificate) 來簽發給使用者的憑證,畢竟終端使用者這麼多,放在線上每天簽屬風險太大。相對的,CA 會使用根憑證先簽發一張憑證,再用這張憑證來簽發給大家的憑證,這張憑證就稱為「中繼憑證」(或中間憑證,Intermediate Certificate)。