Skip to content

建立 2026-09-14 更新 2026-09-14

Edge Functions

Edge Functions 是跑在邊緣節點上的 TypeScript(Deno)函式。資料庫 CRUD 用 Client 就夠了;金鑰不能進瀏覽器、或需要跟第三方 API 對接時,才寫 Function。

典型用途:Stripe webhook、發送 email、用 secret key 做管理操作、驗證完再寫入。

建立與佈署

需要 Supabase CLI

supabase functions new hello
supabase functions serve hello
supabase functions deploy hello

函式目錄在 supabase/functions/hello/index.ts。本機 serve 可先打 curl 測,再 deploy 到雲端。

前端呼叫:

const { data, error } = await supabase.functions.invoke('hello', {
  body: { name: 'Functions' },
})

密鑰放哪

第三方 secret(Stripe、SMTP)不要寫進函式原始碼。本機用 supabase/functions/.env,佈署用:

supabase secrets set --env-file ./supabase/functions/.env

函式內讀環境變數。若要用 secret key 略過 RLS,只在 Function 裡建立 admin client,永遠不要把這把 key 回傳給前端。新專案請依官方 API keys 使用 secret key,而不是舊的 service_role JWT。

開發時若要暫時關掉 JWT 檢查方便 curl,可在 config.tomlverify_jwt = false。正式環境應驗證呼叫者身分。

套件

Deno 用 URL 或 npm: 前綴匯入:

import { createClient } from 'npm:@supabase/supabase-js@2'

不是所有 npm 套件都相容 Deno;卡住時先查官方範例再換套件。

相關資料