Edge Functions
Edge Functions 是跑在邊緣節點上的 TypeScript(Deno)函式。資料庫 CRUD 用 Client 就夠了;金鑰不能進瀏覽器、或需要跟第三方 API 對接時,才寫 Function。
典型用途:Stripe webhook、發送 email、用 secret key 做管理操作、驗證完再寫入。
建立與佈署
需要 Supabase CLI。
函式目錄在 supabase/functions/hello/index.ts。本機 serve 可先打 curl 測,再 deploy 到雲端。
前端呼叫:
密鑰放哪
第三方 secret(Stripe、SMTP)不要寫進函式原始碼。本機用 supabase/functions/.env,佈署用:
函式內讀環境變數。若要用 secret key 略過 RLS,只在 Function 裡建立 admin client,永遠不要把這把 key 回傳給前端。新專案請依官方 API keys 使用 secret key,而不是舊的 service_role JWT。
開發時若要暫時關掉 JWT 檢查方便 curl,可在 config.toml 設 verify_jwt = false。正式環境應驗證呼叫者身分。
套件
Deno 用 URL 或 npm: 前綴匯入:
不是所有 npm 套件都相容 Deno;卡住時先查官方範例再換套件。
相關資料
- 官方:Edge Functions
- 官方影片:Getting Started with Supabase Edge Functions
- 什麼時候不該用它:單純 CRUD 請留在 Client + RLS,見 JavaScript Client 與 CRUD