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