在 Supabase 中使用邊緣函數並透過 Cron 作業調度它們的逐步指南
Supabase 中的邊緣功能可讓您部署在邊緣執行的伺服器端邏輯,從而實現快速且可擴展的操作。以下是建立和部署邊緣功能並使用 cron 作業安排它們的方法:
1- 安裝 Supabase CLI:
下載並安裝 Supabase CLI。這將用於管理您的專案和部署邊緣功能。
透過 npm 安裝:
npm install -g supabase
使用 Supabase 進行驗證:
登入Supabase
本地初始化 Supabase 專案:
導航到終端中的項目目錄。
運行:
SUPABASE 初始化
2。建立邊函數
產生一個新函數:
使用 CLI 產生新的邊函數:
supabase 函數新的 my-function
將 my-function 替換為您的函數名稱。
寫下你的函數邏輯:
導覽至functions/my-function/index.ts 檔案。
加入您的邏輯,例如:
javascript
`從'https://deno.land/std@0.168.0/http/server.ts'導入{服務};
服務(非同步(請求)=> {
返回新的回應('你好,世界!',{
headers: { 'Content-Type': 'text/plain' },
});
});`
本地測試:
本地啟動此功能:
SUPABASE 函數服務我的函數
透過 http://localhost:54321/functions/v1/my-function 存取函數。
部署功能:
將您的函數部署到 Supabase:
supabase 函數部署 my-function
為此,您必須安裝Docker,而且它必須打開!
在 Supabase 儀表板中,導航至「功能」>「我的函數。
複製已部署函數的 URL。
呼叫函數:
使用curl、Postman或JavaScript fetch等工具來測試已部署的函數:
捲曲 https://your-project-id.supabase.co/functions/v1/my-function
4。使用 Cron 作業排程函數
在 Supabase 中安裝並啟用 pg_cron
存取您的 Supabase 專案:
登入您的 Supabase 儀表板並開啟您的專案。
啟用 pg_cron 擴充:
到資料庫>擴充。
搜尋 pg_cron 並透過點擊切換按鈕啟用它。
驗證安裝:
開啟 SQL 編輯器並執行:
SELECT * FROM pg_available_extensions WHERE name = 'pg_cron';
加入Postgres函數來呼叫Edge函數
您需要建立一個使用 HTTP 呼叫 Supabase Edge 函數的 PostgreSQL 函數。
建立 Postgres 函數:
在 SQL 編輯器中,編寫並執行:
`建立或取代函數call_edge_function()
退貨無效 $$
聲明
響應 jsonb;
開始
-- 向 Edge Function 發出 HTTP 請求
選擇回應
http_post(
'https://your-project-id.supabase.co/functions/v1/my-function', -- 替換為您的 Edge Function URL
'{}', -- 可選 JSON 負載(根據需要調整)
'授權=持有者你的匿名金鑰;Content-Type=application/json' -- 替換為您的 Supabase 匿名金鑰
);
-- 可以選擇記錄回應(用於偵錯)
發出通知“回覆:%”,回覆;
結束;
$$ 語言 plpgsql;`
替換:
your-project-id 與您的 Supabase 專案 ID。
your-anon-key 與您的 Supabase 匿名金鑰(可在儀表板的「設定 > API」下找到)。
測試 Postgres 功能:
手動呼叫函數以確保其正常工作:
選擇 call_edge_function();
檢查輸出是否有任何錯誤。
在 SQL 編輯器中,編寫並執行:
選 cron.schedule(
'call_edge_function_job', -- 作業的唯一名稱
'0 * * * *', -- Cron 表達式(例如每小時)
$$ 選擇 call_edge_function(); $$
);
將 cron 表達式替換為您想要的計劃。例如:
每分鐘: * * * * *
每小時:0 * * * *
每天午夜:0 0 * * *
列出預定的工作:
驗證作業已建立:
從 cron.job 中選擇 *;
刪除或更新 Cron 作業:
要刪除作業:
SELECT cron.unschedule('call_edge_function_job');
透過執行這些步驟,您將在 Supabase 上部署功能齊全的邊緣函數,並安排 cron 作業按您所需的時間間隔運行。
以上是Supabase 邊緣函數的詳細內容。更多資訊請關注PHP中文網其他相關文章!