首頁 >web前端 >js教程 >Supabase 邊緣函數

Supabase 邊緣函數

Patricia Arquette
Patricia Arquette原創
2024-12-03 04:31:21432瀏覽

Supabase Edge Functions

在 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,而且它必須打開!

  1. 測試部署的功能 取得函數 URL:

在 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();
檢查輸出是否有任何錯誤。

  1. 使用 pg_cron 安排函數 建立一個 Cron 作業:

在 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn