Supabase 函数在 Deno Deploy 上
我们很高兴地宣布与 Supabase 合作,推出他们的新产品,Supabase 函数,它使您能够在几秒钟内在边缘上全局部署代码。它建立在我们 Deno Deploy 基础设施之上,默认情况下包括自动扩展和自动缓存,因此您可以将精力更多地放在构建产品上,而不是基础设施上。
借助 Deno,Supabase 函数可以获得一流的 TypeScript 支持、ESM 风格的导入、开箱即用的安全性以及对现代 Web API 的支持。
如果您以前没有听说过 Supabase,它是一个开源的 Firebase 替代方案,提供后端服务来创建和部署网站、服务和应用程序。新函数产品加入了令人印象深刻的托管解决方案套件,包括 数据库、存储 以及 用户管理系统。
让我们来看看如何开始。
使用 Supabase 的函数
开始使用 Supabase 函数只需几分钟。
安装和设置 Supabase CLI
在 Mac 上,您可以使用 homebrew
$ brew install supabase/tap/supabase
查看其他 安装说明。
从 这里 获取访问令牌并将其粘贴到执行此命令后出现的提示中,登录您的 Supabase CLI
$ supabase login
创建 Supabase 函数
您可以使用子命令 functions
创建函数
$ supabase functions new hello
这将创建一个函数存根 supabase/functions/hello/index.ts
,它将如下所示
import { serve } from "https://deno.land/[email protected]/http/server.ts";
console.log("Hello from Functions!");
serve(async (req) => {
const { name } = await req.json();
const data = {
message: `Hello ${name}!`,
};
return new Response(
JSON.stringify(data),
{ headers: { "Content-Type": "application/json" } },
);
});
在本地执行函数
首先,启动 Docker,然后启动 Supabase 堆栈
$ supabase start
Started local development setup.
API URL: https://127.0.0.1:54321
DB URL: postgresql://postgres:postgres@localhost:54322/postgres
Studio URL: https://127.0.0.1:54323
Inbucket URL: https://127.0.0.1:54324
anon key: eyxxxxx
service_role key: eyzzzzz
获取 anon key
,因为我们需要在调用函数时将其传递到标头中。
接下来,启动函数观察器
$ supabase functions serve hello
请注意,supabase function serve
具有热重载功能。如果您的文件中存在任何更改,它将重新启动 Deno 服务器。
函数在本地提供服务后,您可以使用 curl 执行它。将 ANON_KEY
替换为 supabase start
输出中的匿名密钥。
$ curl --location --request POST 'https://127.0.0.1:54321/functions/v1/' \
--header 'Authorization: Bearer ANON_KEY' \
--header 'Content-Type: application/json' \
--data '{"name":"Functions"}'
您应该收到响应 {"message":"Hello Functions!"}
。
部署函数
您可以直接从 CLI 部署函数。首先,您必须链接 Supabase 项目。前往 supabase.com 并创建一个项目。
您的 Supabase 项目应具有类似 https://app.supabase.io/project/xyzabcxxxxxx
的 URL 结构。/project/
后面的字母是项目的 ref
,您需要在下面的命令中提供它
$ supabase link --ref xyzabcxxxxxx
Finished supabase link.
然后,部署就像这样简单
$ supabase functions deploy hello
Bundling supabase/functions/hello
Deployed Function hello on project xyzabcxxxxxx.
最后,在生产环境中执行函数。请注意,此处的 ANON_KEY
应在 Supabase 网站上您项目的设置中。
curl --location --request POST 'https://PROJECT_REF.supabase.co/functions/' \
--header 'Authorization: Bearer ANON_KEY' \
--header 'Content-Type: application/json' \
--data '{"name": "Functions"}'
您应该收到响应 {"message":"Hello Functions!"}
。
有关更多信息,请参阅 Supabase 文档。
接下来呢?
我们强烈支持使 Web 开发尽可能轻松愉快,使 Supabase 开发人员能够使用 Deno Deploy 在全球部署的边缘函数来增强他们的应用程序,这是朝着这个方向迈出的一步。随着越来越多的开发人员使用 Deno 和 Deno Deploy,它将帮助我们改进,这样您就可以继续为您的用户构建和部署产品的最佳体验。
想要为您的用户提供快速、轻松且全球化的边缘部署?请通过电子邮件联系我们 [email protected]。